So bereitstellen Sie Nginx auf einem Kubernetes -Cluster
- 3832
- 584
- Madleen Vater
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 = nginxBereitstellung 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
- 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.
- 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.
- 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.
- 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: 80Erstellen 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 aIP -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.
Damit haben wir erfolgreich eingesetzt Nginx Auf unserem 3-Knoten-Kubernetes-Cluster.
- « So installieren und verwenden Sie das TestDisk -Datenwiederherstellungstool unter Linux
- So installieren Sie Mate Desktop in Arch Linux »