So stellen Sie NGINX in einem Kubernetes-Cluster bereit

Bild: Jack Wallen

Kubernetes ist eine der leistungsstärksten Methoden zum Bereitstellen von Clustern für die Verwaltung und Bereitstellung von Containern. NGINX ist einer der beliebtesten Webserver der Welt und eine der besten Möglichkeiten, um die Bereitstellung eines Containers zu veranschaulichen. Wenn Sie beides kombinieren, können Sie einen hoch skalierbaren Webserver nutzen, der Ihrem Unternehmen zum Wachstum verhilft.

Aber wie stellen Sie diesen NGINX-Container in einem Kubernetes-Cluster bereit? Ich werde es dir zeigen. Ein Wort der Warnung: Ich verwende einen Antsle-Cloud-Server, wodurch die Bereitstellung der Kubernetes-Plattform unglaublich einfach ist. Das Betriebssystem, auf dem Kubernetes gehostet wird, ist Ubuntu Server 16.04. Ich gehe davon aus, dass Sie Kubernetes bereits in Betrieb haben. Wenn Sie keinen Antsle haben und zuerst Kubernetes installieren müssen, lesen Sie hier, wie es geht. Für diese Demonstration werde ich auf drei virtuellen Maschinen bereitstellen:

  • kubernetes bei 192.168.1.190
  • kubernetes2 am 192.168.1.191
  • kubernetes3 am 192.168.1.192

Der Computer mit dem Hostnamen kubernetes dient als mein Master, während kubernetes2 / 3 als Knoten dient.

Lassen Sie uns das aus dem Weg räumen.

Einrichten von Hostnamen

Als erstes müssen wir die Hostnamen auf jedem Computer zuordnen. Daher geben wir für jeden Computer den Befehl sudo nano / etc / hosts aus und ordnen die IP-Adresse des anderen Computers dem Hostnamen zu. Auf Kubernetes werden meine Hosts hinzugefügt:

 192.168.1.191 kubernetes2 192.168.1.192 kubernetes3 

Auf kubernetes2 sind die Ergänzungen:

 192.168.1.190 kubernetes 192.168.1.192 kubernetes3 

Auf kubernetes3 sind die Ergänzungen:

 192.168.1.190 kubernetes 192.168.1.191 kubernetes2 

Speichern und schließen Sie die Datei, sobald Sie die Ergänzungen vorgenommen haben. Stellen Sie sicher, dass Sie jeden Server über den Hostnamen anpingen können.

Initialisieren Sie den Masterknoten

Wenn alles vorhanden ist, ist es Zeit, den Masterknoten zu initialisieren. Melden Sie sich bei kubernetes (meinem Masterknoten) an und geben Sie den folgenden Befehl ein:

 sudo kubeadm init --pod-network-cidr = 192.168.1.0 / 16 --apiserver-werbeadresse = 192.168.1.190 

Dieser Befehl kann ein oder zwei Minuten dauern, da möglicherweise die erforderlichen Bilder abgerufen werden müssen. Nach Abschluss sollte eine ähnliche Ausgabe in Abbildung A angezeigt werden.

Abbildung A.

Unser Hauptknoten wurde bereitgestellt.

In der Ausgabe sind Ihr Token und Ihr Discovery-Token enthalten. Stellen Sie sicher, dass Sie diese nach unten kopieren (oder einfach den gesamten Join-Befehl kopieren), da Sie diese Informationen benötigen, um die Knoten mit dem Cluster zu verbinden.

Der nächste Schritt ist in der Ausgabe des Initialisierungsbefehls klar umrissen. Tatsächlich müssen Sie die folgenden Befehle ausgeben:

 mkdir -p ~ / .kube sudo cp -i /etc/kubernetes/admin.conf ~ / .kube / config sudo chown $ (id -u): $ (id -g) ~ / .kube / config 

Wenn Sie die oben genannten Befehle ausgegeben haben, überprüfen Sie den Status der Knoten (zu diesem Zeitpunkt gibt es nur einen) mit dem folgenden Befehl:

 kubectl get Knoten 

Sie sollten den Hauptknoten aufgelistet sehen ( Abbildung B ).

Abbildung B.

Unser Hauptknoten ist aufgelistet.

Der Grund, warum unser Master-Knoten als nicht bereit aufgeführt ist, liegt darin, dass er noch keine Container Networking Interface (CNI) hat. Lassen Sie uns mit dem folgenden Befehl eine Calico-CNI für den Master bereitstellen:

 sudo kubectl apply -f https://docs.projectcalico.org/v2.6/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml 

Stellen wir sicher, dass Calico mit dem Befehl kubectl get pods --all-namespaces korrekt bereitgestellt wurde .

Die Ausgabe des obigen Befehls ( Abbildung C ) sollte zeigen, wie Calico ausgeführt wird.

Abbildung C.

Calico läuft tatsächlich jetzt.

Führen Sie kubectl get node erneut aus, und Sie sollten sehen, dass der Master-Knoten jetzt als Bereit aufgeführt ist.

Hinzufügen von Knoten zum Cluster

Als nächstes gehen wir zu unseren Knoten, um sie dem Cluster hinzuzufügen. Erinnern Sie sich an den Join-Befehl in der Ausgabe des Master Node-Initialisierungsbefehls? Gehen Sie zu kubernetes2 und geben Sie diesen Befehl ein, der ungefähr so ​​aussieht:

 sudo kubeadm join --token 6779e1.164c5515cf412fdf 192.168.1.190:6443 --discovery-token-ca-cert-hash sha256: c3e413050e40675280bbf8e37a99c53a1481f82d714469b51b77de17b 

Wenn dieser Befehl ausgeführt wurde, machen Sie dasselbe auf kubernetes3. Nachdem Sie den Join-Befehl auf Ihren Knoten ausgegeben haben, kehren Sie zum Master-Knoten zurück und geben Sie den Befehl kubectl get node ein. Alle Knoten sollten bereit sein ( Abbildung D ).

Abbildung D.

Alle unsere Knoten sind betriebsbereit.

Stellen Sie den NGINX-Container im Cluster bereit

Jetzt ist es Zeit, den NGINX-Container bereitzustellen. Geben Sie auf dem Masterknoten den folgenden Befehl ein:

 sudo kubectl create deploy nginx --image = nginx 

Als nächstes stellen wir den NGINX-Container dem Netzwerk mit dem folgenden Befehl zur Verfügung:

 sudo kubectl create service nodeport nginx --tcp = 80: 80 

Geben Sie den Befehl kubectl get svc ein, um Ihre NGINX-Liste (sowie den von Kubernetes angegebenen zugewiesenen Port - Abbildung E ) anzuzeigen.

Abbildung E.

Unser NGINX-Service läuft.

Testen wir dies mit dem Befehl:

 curl kubernetes3: 30655 

HINWEIS: Der 30655-Port wurde während des Befehls create service zugewiesen. Dies gilt nur für Ihre Bereitstellung.

Die Ausgabe des Befehls curl sollte den HTML-Code der Seite NGINX index.html anzeigen. Wenn Sie das sehen, herzlichen Glückwunsch, wurde Ihr NGINX-Container in Ihrem Kubernetes-Cluster bereitgestellt. Wenn Sie einen Webbrowser auf http: // IP_OF_NODE: ASSIGNED_PORT verweisen (wobei IP_OF_NODE eine IP-Adresse eines Ihrer Knoten ist und ASSIGNED_PORT der Port ist, der während des Befehls create service zugewiesen wurde), sollte die NGINX-Begrüßungsseite angezeigt werden!

Grundlegende Bereitstellung

Was wir getan haben, ist eine sehr einfache Kubernetes-Bereitstellung von NGINX in einem Cluster. Es gibt so viel mehr über die Verwendung von Kubernetes zu lernen. Dies sollte Ihnen jedoch einen guten Start ermöglichen und Ihnen helfen, NGINX einfach auf Ihrem Kubernetes-Cluster bereitzustellen.

Newsletter zu Trends im Rechenzentrum

DevOps, Virtualisierung, Hybrid Cloud, Speicher und betriebliche Effizienz sind nur einige der Themen im Rechenzentrum, die wir hervorheben werden. Wird montags und mittwochs geliefert

Heute anmelden

© Copyright 2020 | mobilegn.com