Middle
Wofür werden Tests in Kubernetes verwendet?
sobes.tech KI
Antwort von AI
Probes in Kubernetes werden verwendet, um den Zustand der Container zu bestimmen und den Lebenszyklus der Pods zu verwalten. Sie ermöglichen es dem Cluster, automatisch auf Änderungen im Zustand der Anwendungen zu reagieren und deren Verfügbarkeit und Stabilität sicherzustellen.
Es gibt drei Haupttypen von Probes:
- Liveness Probe: Bestimmt, ob die Anwendung im Container läuft. Wenn die Liveness Probe fehlschlägt, startet Kubernetes den Container neu.
- Readiness Probe: Bestimmt, ob der Container bereit ist, Traffic zu empfangen. Wenn die Readiness Probe fehlschlägt, wird der Pod vorübergehend aus der Liste der verfügbaren Endpunkte für den Service entfernt.
- Startup Probe: Bestimmt, ob die Anwendung im Container gestartet wurde. Kann für Anwendungen verwendet werden, die lange Initialisierungszeiten benötigen. Wenn die Startup Probe erfolgreich ist, beginnen die nachfolgenden Prüfungen (Liveness/Readiness) nach Zeitplan. Wenn sie innerhalb der festgelegten Zeit fehlschlägt, beendet Kubernetes den Container und startet ihn neu.
Probes können auf verschiedene Weisen implementiert werden:
- ExecAction: Führt einen Befehl im Container aus. Erfolg wird anhand des Rückgabecodes bestimmt (0 - Erfolg, sonst Fehler).
# Beispiel für ExecAction bei der Liveness Probe livenessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 periodSeconds: 5 - HTTPGetAction: Sendet eine HTTP GET-Anfrage an den angegebenen Port und Pfad des Containers. Erfolg wird anhand des HTTP-Statuscodes bestimmt (meist 2xx oder 3xx).
# Beispiel für HTTPGetAction bei der Readiness Probe readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 3 - TCPSocketAction: Versucht, eine TCP-Verbindung zum angegebenen Port des Containers herzustellen. Erfolg wird anhand der erfolgreichen Verbindung bestimmt.
# Beispiel für TCPSocketAction bei der Liveness Probe livenessProbe: tcpSocket: port: 8080 initialDelaySeconds: 15 periodSeconds: 20
Der korrekte Einsatz von Probes ist entscheidend für die Zuverlässigkeit und Fehlertoleranz von Anwendungen in Kubernetes.