Sobes.tech
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.