Kubernetes Readiness Sonden

Kubernetes Readiness Sonden
Kubernetes ist ein fantastisches Framework für die Bereitstellung von Microservices und Apps. Wenn Pods nicht richtig abschneiden, werden sie neu gestartet oder aus einem Service entfernt, was eine wunderbare Funktion ist. Kubernetes erfordert unsere Unterstützung bei der Feststellung, ob eine POD in Betrieb ist oder nicht. Containersonden werden verwendet, um dies einzurichten. In diesem Artikel werden wir versuchen zu verstehen, was Kubernetes -Bereitschaftsonden sind und wie es funktioniert.

Was sind Bereitschaftssonden?

Kubernetes verwendet Bereitschaftssonden, um herauszufinden, wann es sicher ist, den Verkehr an einen Schoten zu übertragen oder wann es Zeit ist, den Pod in den Bereitschaftszustand zu verschieben.

Eine Bereitschaftsuntersuchung wird bewerten.

Die Bereitschaftssonde läuft für den Rest des Lebenes des Schotens; Dies bedeutet, dass es auch nach dem Erreichen des Pods den Bereitschaftszustand verläuft. Außerdem kann sich unsere Bewerbung für die Wartung oder eine Hintergrundarbeit unzugänglich machen, indem sie auf die Sonde mit verschiedenen Antworten reagiert.

Es zeigt an, ob der Container bereit ist, Fragen anzunehmen oder nicht. Wenn die Bereitschaftssonde aus irgendeinem Grund zerstört, eliminiert der Endpunkt -Controller die IP -Adresse der Pods von den Endpunkten zwischen allen Diensten, die die Pod erfüllen. Das Versagen ist die Standardbedingung der Bereitschaft vor der anfänglichen Verzögerung.

Wann sollten Sie eine Bereitschaftssonde verwenden?

Die Bereitschaftssonde kann genau wie die Langlebigkeitssonde sein (die feststellt, wann ein Container neu gestartet werden sollte) in diesem Szenario. Das Vorhandensein der Bereitschaftssonde in der Spezifikation legt jedoch nahe, dass der POD beginnt, ohne den Verkehr zu akzeptieren und nur den Verkehr zu akzeptieren, sobald die Sonde erfolgreich ist.

Sie können sowohl Lebendigkeit als auch eine Bereitschaftssonde verwenden, wenn Ihre App stark von Backend -Diensten angewiesen ist. Die Bereitschaftssonde stellt sicher, dass jeder essentielle Backend -Service zusätzlich zur Lebendigkeitssonde verfügbar ist, die durch gesund ist, wenn die App gesund ist. Dies verhindert, dass der Verkehr an Pods gesendet wird, die nur mit Fehlermeldungen reagieren können.

Eine Startsonde kann helfen, wenn Ihr Container eine große Menge an Daten, Konfigurationsdateien oder Migrationen während des Starts erfordert. Eine Bereitschaftssonde ist sehr nützlich, wenn Sie zwischen einer fehlgeschlagenen App und der anderen unterscheiden möchten, die noch ihre ersten Daten verarbeitet.

Voraussetzung

Einige Voraussetzungen müssen erfüllt sein. Ubuntu 20.0 ist ein Linux -Betriebssystem, das zuerst installiert werden muss. Da Kubernetes unter Linux dies benötigt, installieren Sie auch den Minikube -Cluster.

Bevor wir zum Befehlszeilenterminal wechseln, müssen wir zuerst Ubuntu 20 starten.04, der bereits installiert wurde. Geben Sie "Terminal" in die Ubuntu 20 ein.04 Suchfeld des Systems, um das Terminal schnell zu starten.

Danach sollte der Minikube gestartet werden. Um das Minikube zu starten, verwenden Sie den Terminalbefehl „Minikube Start.Mit diesem Befehl starten Sie den Kubernetes -Cluster und erstellen eine virtuelle Maschine, die eine Clusterausführung in der Lage ist. Die Ausgabe des Befehls „Minikube Start“ ist unten dargestellt:

Beispiel für Kubernetes -Bereitschaftsonden

Wir können eine Beispiel -App konfigurieren. In diesem Fall ein einfacher Nginx -Webserver, um zu verstehen, wie die Bereitschaftssonden funktionieren. Wir haben hier eine grundlegende Bereitstellungskonfiguration entwickelt. Jeder Aspekt der Konfigurationsdatei wird in beiden beigefügten Screenshots angezeigt:

Diese Konfiguration sollte in einer Datei namens Bereitschaft gespeichert werden.Yaml.

Verwenden Sie danach kubectl anwenden -f -Bereitschaft.Yaml, um es anzuwenden. Der Anweisungen und seine Ausgabe sind im folgenden Screenshot zu sehen:

Wir haben jetzt einen Dienst für das vollständige Verständnis des Beispiels entwickelt.

Speichern Sie diese Konfiguration in der SVC.YAML -Datei.

Verwenden Sie danach Kubectl anwenden -f SVC.Yaml, um es anzuwenden. Der Anweisungen und seine Ausgabe sind im folgenden Screenshot zu sehen:

Obwohl es keinen bestimmten Endpunkt für Bereitschaftssonden gibt, können wir Informationen über ihren gegenwärtigen Zustand erhalten, indem wir den Befehl kubectl beschreiben. Führen Sie den Befehl kubectl get Pods aus und überprüfen Sie den Status der Schoten und anderer Details.

Pods werden zusammen mit ihrem Status und ihren Bereitschaftszuständen angezeigt. Wie Sie sehen können, läuft unser Pod wie geplant. Die Anweisung und deren Ausgabe sind im unten angegebenen Screenshot zu sehen:

Das Ergebnis der „Kubectl -Beschreibung Pod“ ist unten beigefügt. Der Anweisungen und seine Ausgabe sind im folgenden Screenshot zu sehen:

Der Ereignisabschnitt wird am Ende der Ausgabe des folgenden Befehls angezeigt:

Mit dem Befehl kubectl -Endpunkte können wir die Endpunkte untersuchen. Der Nginx -Dienst hat einen Endpunkt, wie man gesehen werden kann. Der Anweisungen und seine Ausgabe sind im folgenden Screenshot zu sehen:

Wir können den Befehl kubectl beschreiben, den Befehl nginx beschreiben, um weitere Informationen anzuzeigen. Der Anweisungen und seine Ausgabe sind im folgenden Screenshot zu sehen:

Nehmen wir an, wir setzen den Portparameter für die Bereitschaftssonde auf 81 und speichern Sie das Setup. Überprüfen Sie zunächst den Status des Pod direkt. Der Staat "läuft", wie Sie unten sehen können. Der Anweisungen und seine Ausgabe sind im folgenden Screenshot zu sehen:

Da wir Port 81 nicht aktualisiert haben, gab es einen Booleschen Wert von „True“ zurück, wie im Screenshot unten gezeigt. Wenn Sie Port 81 ändern und erfolgreich aktualisiert werden, gibt es „False“ zurück, was darauf hinweist, dass der NginX -Dienst keine Endpunkte hat, da der Container nicht bereit ist, Verkehr zu empfangen. Der Anweisungen und seine Ausgabe sind im Screenshot unten zu sehen.

Abschluss:

In diesem Artikel wurden die Effekte der Bereitschaftssonde beobachtet und die Parameter konfiguriert werden. Obwohl wir uns auf die HTTP -Prüfung konzentriert haben, können die von uns gelernten Techniken auf einen der anderen Tests angewendet werden. Um Bereitschaftssonden zu konfigurieren und zu betreiben, müssen Sie zunächst die Architektur und Abhängigkeiten Ihrer Anwendung verstehen. Wir hoffen, Sie haben diesen Artikel hilfreich gefunden. Weitere Tipps und Artikel finden Sie in den anderen Linux -Hinweisartikeln.