Middle
Kas notiks, ja liveness-tests Kubernetes neizdosies?
sobes.tech AI
Atbilde no AI
Ja pod neiztur liveness pārbaudi, Kubernetes veiks norādot darbību pod manifestā. Parasti tas ir konteineru pārstartēšana:
Iespējamās darbības, ja liveness pārbaude neizdodas:
- Pārstartēt: konteineru pārstartēšana pod iekšienē. Šī darbība tiek izmantota kā noklusējuma.
- Neveikt neko: Kubernetes neveiks nekādas darbības, ja liveness pārbaude neizdodas. Konteineris paliks pašreizējā stāvoklī (
RunningvaiCrashing). - Izpildīt komandu: izpildīt noteiktu komandu konteinerā. Ja komanda beidzas ar nenulles atgriešanas kodu, liveness pārbaude tiek uzskatīta par neveiksmīgu.
Scenārijs ar noklusējuma darbību (Pārstartēt):
- kubelet regulāri pārbauda konteineru ar liveness pārbaudi.
- Ja liveness pārbaudes nosacījums netiek izpildīts (piemēram, HTTP serveris neatbild, komanda beidzas ar kļūdu):
- kubelet reģistrē kļūmi.
- Pēc dažām neveiksmīgām mēģinājumiem (
failureThreshold,initialDelaySeconds,periodSeconds,timeoutSecondskonfigurēti): - kubelet nosūta
SIGKILLsignālu neveiksmīgajam konteinerim. - Konteineris beidzas.
- kubelet pārstartē to pašu podu.
- Liveness pārbaudes process tiek atsāktas.
Svarīgi atšķirt liveness pārbaudi no readiness pārbaudes. Readiness pārbaude nosaka, vai konteineris ir gatavs pieņemt trafiku. Ja readiness pārbaude neizdodas, Service nesūtīs trafiku uz šo podu, bet konteineris netiks pārstartēts. Liveness pārbaudes neveiksme norāda uz bojājumu un nepieciešamību pēc pārstartēšanas.
# Liveness pārbaudes piemērs spec.containers daļā
containers:
- name: my-container
image: my-image:latest
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 15 # Pirmās pārbaudes aizkave
periodSeconds: 20 # Pārbaudes intervāls
timeoutSeconds: 5 # Atbildes gaidīšanas laiks
failureThreshold: 3 # Neveiksmīgu mēģinājumu skaits pirms pārstartēšanas