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.