So bereitstellen Sie Nginx auf einem Kubernetes -Cluster

So bereitstellen Sie Nginx auf einem Kubernetes -Cluster

In unserem letzten Artikel haben wir diskutiert, wie wir einen Kubernetes -Cluster einrichten und ausführen können. Lassen Sie uns diskutieren, wie wir bereitstellen können Nginx Service auf unserem Cluster.

Ich werde diese Bereitstellung auf einer virtuellen Maschine ausführen, die von einem öffentlichen Cloud -Anbieter gehostet wird. Wie bei vielen öffentlichen Cloud -Diensten unterhalten viele im Allgemeinen ein öffentliches und privates IP -Programm für ihre virtuellen Maschinen.

Testumgebung

Master -Knoten - öffentliche IP: 104.197.170.99 und private IP: 10.128.15.195 Arbeiterknoten 1 - Öffentliche IP: 34.67.149.37 und private IP: 10.128.15.196 Arbeiterknoten 2 - Öffentliche IP: 35.232.161.178 und private IP: 10.128.15.197 

Bereitstellung von Nginx in einem Kubernetes -Cluster

Wir werden diese Bereitstellung aus dem Master-Knoten ausführen.

Beginnen wir zunächst den Status des Clusters überprüfen. Alle Ihre Knoten sollten in einem sein BEREIT Zustand.

# kubectl Holen Sie sich Knoten 
Überprüfen Sie den Kubernetes -Clusterstatus

Wir erstellen eine Bereitstellung von Nginx Verwendung der Nginx Bild.

# kubectl erstellen Bereitstellungen nginx --image = nginx 
Bereitstellung von Nginx auf Kubernetes

Sie können jetzt den Zustand Ihrer Bereitstellung sehen.

# Kubectl erhalten Bereitstellungen 
Überprüfen Sie die Bereitstellung von NGINX auf Kubernetes

Wenn Sie mehr Details zu Ihrer Bereitstellung sehen möchten, können Sie die ausführen beschreiben Befehl. Zum Beispiel ist es möglich zu bestimmen, wie viele Repliken der Bereitstellung ausgeführt werden. In unserem Fall erwarten wir eine Nachbildung von 1 Laufen (ich.e 1/1 Repliken).

# kubectl beschreiben die Bereitstellung nginx 
Überprüfen Sie die Details zur Bereitstellung von NGINX -Bereitstellungen

Jetzt ist Ihre Nginx -Bereitstellung aktiv. Möglicherweise möchten Sie die enthüllen Nginx Service für eine öffentliche IP im Internet erreichbar.

Legen Sie Ihren NGINX -Dienst dem öffentlichen Netzwerk aus

Kubernetes bietet mehrere Optionen an, wenn Sie Ihren Service basierend auf einer Funktion namens Kubernetes Service-Typen aussetzen

  1. Clusterip - Dieser Service-Typ legt den Service im Allgemeinen auf einer internen IP aus, die nur innerhalb des Clusters und möglicherweise nur innerhalb der Cluster-Nodes erreicht werden kann.
  2. Nodeport - Dies ist die grundlegendste Option, um Ihren Dienst aufzusetzen, um außerhalb Ihres Clusters auf einem bestimmten Port zugänglich zu sein (genannt der genannt Nodeport) auf jedem Knoten im Cluster. Wir werden diese Option in Kürze veranschaulichen.
  3. Lastenausgleicher - Diese Option nutzt die von verschiedenen Anbietern angebotenen externen Ladungsausgleichsdienste, um den Zugriff auf Ihren Service zu ermöglichen. Dies ist eine zuverlässiger.
  4. Externalname - Dieser Service leitet den Verkehr zu Diensten außerhalb des Clusters um. Als solcher wird der Dienst so einem DNS -Namen zugeordnet, der aus Ihrem Cluster gehostet werden könnte. Es ist wichtig zu beachten, dass dies kein Proxying verwendet.

Der Standard-Service-Typ ist Clusterip.

In unserem Szenario wollen wir das verwenden Nodeport-Service-Typ Weil wir sowohl eine öffentliche als auch eine private IP -Adresse haben und vorerst keinen externen Last -Balancer benötigen. Mit diesem Service-Typ wird Kubernetes diesen Service auf Ports auf der 30000+ Bereich.

# kubectl erstellen service nodeport nginx - -tcp = 80: 80 
Erstellen Sie den Nodeport -Service, um Nginx freizulegen

Leiten Sie die Holen Sie sich SVC Befehl, eine Zusammenfassung des Dienstes und der Ports ausgesetzt zu sehen.

# kubectl Holen Sie sich SVC 
Überprüfen Sie den Nginx -Dienst und den Port

Jetzt können Sie überprüfen, ob die Nginx Die Seite ist auf allen Knoten mit dem Befehl curl erreichbar.

# CURL Master-Node: 30386 # Curl Node-1: 30386 # Curl Node-2: 30386 
Überprüfen Sie die Nginx -Seite auf Kubernetes Cluster

Wie Sie sehen können, das “WILLKOMMEN BEI NGINX!”Seite kann erreicht werden.

Erreichen kurzlebiger öffentlicher IP -Adressen

Wie Sie vielleicht bemerkt haben, Kubernetes Berichte, dass ich keine aktive öffentliche IP-Registrierung oder eher keine externe IP-IP-Registrierung habe.

# kubectl Holen Sie sich SVC 
Überprüfen Sie den Nginx -Dienst und den Port

Überprüfen Sie, ob es in der Tat wahr ist, dass ich mit IP -Befehl keine externe IP an meinen Schnittstellen angeschlossen habe.

# ip a 
IP -Adressen überprüfen

Kein öffentliches IP, wie Sie sehen können.

Wie bereits erwähnt, führe ich diesen Bereitstellen derzeit auf einem aus Virtuelle Maschine angeboten von einem öffentlichen Cloud -Anbieter. Obwohl es keine bestimmte Schnittstelle zugewiesen hat, hat der VM -Anbieter eine kurzlebige externe IP -Adresse herausgegeben.

Eine kurzlebige externe IP -Adresse ist eine temporäre IP. Wenn die virtuelle Instanz neu gestartet wird, wird eine neue externe IP zugewiesen. Grundsätzlich ist dies eine einfache Möglichkeit für Dienstleister, auf Leerlauf -öffentliche IPs zu nutzen.

Die Herausforderung hier, außer der Tatsache, dass Ihre öffentliche IP nicht statisch ist, besteht darin, dass die Kurzlebiger öffentlicher IP ist einfach eine Erweiterung (oder Proxy) der privaten IP, und aus diesem Grund wird der Dienst nur auf Port 30386 zugegriffen. Das bedeutet, dass auf den Dienst auf der URL zugegriffen wird , das ist 104.197.170.99: 30386, Wenn Sie Ihren Browser überprüfen, sollten Sie die Begrüßungsseite sehen können.

Überprüfen Sie die auf Kubernetes bereitgestellte Nginx -Seite

Damit haben wir erfolgreich eingesetzt Nginx Auf unserem 3-Knoten-Kubernetes-Cluster.