Sobes.tech
Middle

Na čo sa používajú skúšky v Kubernetes?

sobes.tech AI

Odpoveď od AI

V Kubernetes sa používajú skúšky na určenie stavu kontajnerov a riadenie životného cyklu podov. Umožňujú klastru automaticky reagovať na zmeny stavu aplikácií, zabezpečujúc ich dostupnosť a stabilitu.

Existujú tri hlavné typy skúšok:

  • Liveness probe (Skúška životaschopnosti): Určuje, či aplikácia v kontajneri funguje. Ak liveness probe skončí s chybou, Kubernetes reštartuje kontajner.
  • Readiness probe (Skúška pripravenosti): Určuje, či je kontajner pripravený prijímať prevádzku. Ak readiness probe skončí s chybou, Kubernetes dočasne odstráni pod zo zoznamu dostupných endpointov pre službu, ktorá na neho smeruje prevádzku.
  • Startup probe (Počiatočná skúška): Určuje, či sa spustenie aplikácie v kontajneri dokončilo. Môže byť použitá pre aplikácie, ktoré vyžadujú dlhý čas na inicializáciu. Ak startup probe skončí úspešne, ďalšie kontroly (liveness/readiness) sa začnú podľa plánu. Ak startup probe zlyhá v stanovenom čase, Kubernetes zabije a reštartuje kontajner.

Skúšky môžu byť implementované rôznymi spôsobmi:

  • ExecAction: Spúšťa príkaz vnútri kontajnera. Úspech sa určuje podľa návratového kódu (0 - úspech, inak chyba).
    # Príklad ExecAction pre liveness probe
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 5
      periodSeconds: 5
    
  • HTTPGetAction: Odosiela HTTP GET požiadavku na určený port a cestu kontajnera. Úspech sa určuje podľa kódu stavu HTTP (zvyčajne 2xx alebo 3xx).
    # Príklad HTTPGetAction pre readiness probe
    readinessProbe:
      httpGet:
        path: /ready
        port: 8080
      initialDelaySeconds: 5
      periodSeconds: 5
      failureThreshold: 3
    
  • TCPSocketAction: Pokúša sa nadviazať spojenie cez TCP socket na určený port kontajnera. Úspech sa určuje podľa úspešne nadviazaného spojenia.
    # Príklad TCPSocketAction pre liveness probe
    livenessProbe:
      tcpSocket:
        port: 8080
      initialDelaySeconds: 15
      periodSeconds: 20
    

Správne používanie skúšok je kľúčové pre spoľahlivosť a odolnosť aplikácií v Kubernetes.