Einführung
Sprechen wir über Kubernetes -Sonden und warum sie in Ihren Bereitstellungen von Bedeutung sind. Bei der Verwaltung von Containeranwendungen mit produktionsbedingten Containern können selbst kleine Optimierungen enorme Vorteile haben.
Ziel, die Bereitstellungszeiten zu verkürzen, Ihre Anwendungen besser auf Skalierungsereignisse zu reagieren und die Gesundheit von Pods zu verwalten, erfordert die Feinabstimmung Ihres Behälter-Lebenszyklusmanagements. Genau aus diesem Grund ist die ordnungsgemäße Konfiguration – und die Implementierung – von Kubernetes -Sonden für jede kritische Bereitstellung von entscheidender Bedeutung. Sie unterstützen Ihren Cluster, intelligente Entscheidungen über Verkehrsrouting, Neustart und Ressourcenzuweisung zu treffen.
Ordnungsgemäß konfigurierte Sonden verbessern Ihre Anwendungszuverlässigkeit dramatisch, reduzieren Sie die Ausfallzeiten für die Bereitstellung und behandeln Sie unerwartete Fehler anmutig. In diesem Artikel werden wir die drei in Kubernetes verfügbaren Sonden untersuchen und wie die Verwendung dieser nebeneinander widerstandsfähigere Systeme konfigurieren.
Schnelle Auffrischung
Es ist wesentlich zu verstehen, was jede Sonde und einige gemeinsame Konfigurationsmuster macht. Jeder von ihnen dient einem bestimmten Zweck im Containerlebenszyklus und erstellen bei gemeinsamer Verwendung ein rock-solides Framework für die Aufrechterhaltung Ihrer Anwendungsverfügbarkeit und -leistung.
Startup: Startzeiten optimieren
Startsonden werden einmal bewertet, wenn ein neuer Pod aufgrund eines Skalierungsereignisses oder eines neuen Bereitstellers angezeigt wird. Es dient als Gatekeeper für den Relaxation der Containerüberprüfungen und die Feinabstimmung hilft Ihren Anwendungen besser, eine erhöhte Final oder den Serviceabbau zu erledigen.
Beispielkonfiguration:
startupProbe:
httpGet:
path: /well being
port: 80
failureThreshold: 30
periodSeconds: 10
Key Takeaways:
- Halten
periodSeconds
Niedrig, so dass die Sonde häufig einen erfolgreichen Einsatz erfasst. - Zunahme
failureThreshold
zu einem ausreichend hohen Wert, um für die Worst-Case-Startzeit berücksichtigt zu werden.
Die Begin -Sonde prüft, ob Ihr Container mit der Abfrage des konfigurierten Pfades begonnen hat. Es wird zusätzlich Stoppen Sie das Auslösen der Sonden- und Bereitschaftssonden bis es erfolgreich ist.
Lebendigkeit: Erkennen toter Behälter
Ihre Langlebigkeitsuntersuchungen beantworten eine sehr einfache Frage: „Läuft dieser Pod noch richtig?“ Wenn nicht, startet K8s es neu.
Beispielkonfiguration:
livenessProbe:
httpGet:
path: /well being
port: 80
periodSeconds: 10
failureThreshold: 3
Key Takeaways:
- Da K8s Ihren Container vollständig neu starten und eine neue verdreht, fügen Sie a hinzu
failureThreshold
zeitweilige Anomalien bekämpfen. - Verwenden Sie es vermeiden
initialDelaySeconds
Da es zu restriktiv ist-verwenden Sie stattdessen eine Startsonde.
Achten Sie darauf, dass eine fehlgeschlagene Langlebigkeitssonde Ihren aktuell laufenden Pod senkt und eine neue aufruft. Vermeiden Sie es, sie zu aggressiv zu machen – das ist für die nächste.
Bereitschaft: Umgang mit unerwarteten Fehlern
Die Bereitschaftssonde bestimmt, ob sie beginnen oder weitermachen sollte, um Verkehr zu erhalten. Es ist äußerst nützlich in Situationen, in denen Ihr Container die Verbindung zur Datenbank verloren hat oder ansonsten übermäßig ausgeballt ist und keine neuen Anfragen erhalten sollte.
Beispielkonfiguration:
readinessProbe:
httpGet:
path: /well being
port: 80
periodSeconds: 3
failureThreshold: 1
timeoutSeconds: 1
Key Takeaways:
- Da dies Ihre erste Wache ist, um den Verkehr auf ungesunde Ziele zu stoppen, machen Sie die Sonde aggressiv und reduzieren Sie die
periodSeconds
. - Halten
failureThreshold
Zumindest möchten Sie schnell scheitern. - Die Zeitüberschreitungszeit sollte ebenfalls auf einem Minimal gehalten werden, um langsamer zu handhaben Behälter.
- Gib das
readinessProbe
ausreichende Zeit, um sich zu erholen, indem man länger lauftlivenessProbe
.
Bereitschaftssonden stellen sicher, dass der Verkehr nicht einen Container erreicht, der nicht bereit ist, und als solches ist er eines der wichtigsten im Stapel.
Alles zusammenstellen
Wie Sie sehen können, ist der beste Weg, um die Resilienzstrategie Ihrer Anwendung zu verbessern, auch wenn alle Sonden ihre eigenen einzigartigen Verwendungszwecke haben, nebeneinander zu verwenden.
Ihre Begin -Sonde unterstützt Sie in Skala -Up -Szenarien und neuen Bereitstellungen, sodass Ihre Container schnell zur Sprache gebracht werden können. Sie werden nur einmal gefeuert und stoppen auch die Ausführung des Restes der Sonden, bis sie erfolgreich abgeschlossen sind.
Die Lebendigkeitssonde hilft beim Umgang mit toten Containern, die an nicht wiederholbaren Fehlern leiden, und fordert dem Cluster auf, eine neue, frische Schote nur für Sie zu erzählen.
Die Bereitschaftssonde ist diejenige, die K8s sagt, wann ein Pod Verkehr erhalten sollte oder nicht. Es kann äußerst nützlich sein, um mit zeitweiligen Fehlern oder hohem Ressourcenverbrauch umzugehen, was zu langsameren Reaktionszeiten führt.
Zusätzliche Konfigurationen
Sonden können weiter konfiguriert werden, um einen Befehl in den Schecks anstelle einer HTTP -Anforderung zu verwenden und den Container ausreichend Zeit zu geben, um sicher zu enden. Während diese in spezifischeren Szenarien nützlich sind, kann es vorteilhaft sein, zu verstehen, wie Sie Ihre Bereitstellungskonfiguration erweitern können. Ich würde daher empfehlen, zusätzliche Lektüre durchzuführen, wenn Ihre Container eindeutige Anwendungsfälle verarbeiten.
Weitere Lektüre:
Lebendigkeit, Bereitschaft und Startup -Sonden
Konfigurieren Sie Lebendigkeit, Bereitschafts- und Startsonden