Sobes.tech
Middle

K čemu slouží zkoušky v Kubernetes?

sobes.tech AI

Odpověď od AI

Proby v Kubernetesu se používají k určení stavu kontejnerů a správě životního cyklu podů. Umožňují clusteru automaticky reagovat na změny stavu aplikací, čímž zajišťují jejich dostupnost a stabilitu.

Existují tři hlavní typy prob:

  • Liveness probe (Proba životnosti): Určuje, zda aplikace uvnitř kontejneru funguje. Pokud selže, Kubernetes restartuje kontejner.
  • Readiness probe (Proba připravenosti): Určuje, zda je kontejner připraven přijímat provoz. Pokud selže, Kubernetes dočasně odstraní pod ze seznamu dostupných koncových bodů služby, která ho směruje.
  • Startup probe (Proba spuštění): Určuje, zda aplikace v kontejneru dokončila spuštění. Může být použita pro aplikace, které vyžadují dlouhou inicializaci. Pokud je úspěšná, následující kontroly (životnost/ připravenost) začínají podle plánu. Pokud selže, Kubernetes zabije a znovu spustí kontejner.

Proby lze implementovat různými způsoby:

  • ExecAction: Spouští příkaz uvnitř kontejneru. Úspěch je určen kódem návratu (0 - úspěch, jinak chyba).
    # Příklad ExecAction pro životnostní prob
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5
    
  • HTTPGetAction: Odesílá HTTP GET požadavek na určený port a cestu kontejneru. Úspěch je určen kódem stavu HTTP (obvykle 2xx nebo 3xx).
    # Příklad HTTPGetAction pro připravenost
    readinessProbe:
      httpGet:
        path: /ready
        port: 8080
      initialDelaySeconds: 5
      periodSeconds: 5
      failureThreshold: 3
    
  • TCPSocketAction: Pokouší se navázat TCP spojení na určený port kontejneru. Úspěch je určen úspěšným připojením.
    # Příklad TCPSocketAction pro životnostní prob
    livenessProbe:
      tcpSocket:
        port: 8080
      initialDelaySeconds: 15
      periodSeconds: 20
    

Správné použití prob je klíčové pro spolehlivost a odolnost aplikací v Kubernetes.