Sobes.tech
Middle

Ի՞նչ է տեղի ունենում, եթե liveness-պարամետրը չհաջողվի Kubernetes-ում:

sobes.tech AI

Պատասխան AI-ից

Եթե pod-ը չի անցնում liveness-փորձը, Kubernetes-ը կիրականացնի manifest-ում նշված գործողությունը pod-ի համար: Դեպքում, դա սովորաբար կոնտեյների վերագործարկումն է:

Լավագույն գործողությունները liveness-փորձի ձախողման դեպքում՝

  • Վերագործարկում: Կոնտեյների վերագործարկում pod-ի ներսում: Սա օգտագործվում է որպես հիմնական գործողություն:
  • Ոչինչ: Kubernetes-ը չի ձեռնարկի որևէ գործողություն liveness-փորձի ձախողման դեպքում: Կոնտեյները կմնան ներկայիս վիճակում (Running կամ Crashing):
  • Կատարել հրամանի: Կատարել որոշակի հրամանի կոնտեյնում: Եթե հրամանը ավարտվում է ոչ զրոյական կոդով, ապա liveness-փորձը համարվում է ձախողված:

Սցենարը, որտեղ օգտագործվում է հիմնական գործողությունը (Վերագործարկում):

  1. kubelet-ը ռեգուլյար ստուգում է կոնտեյները liveness-փորձի միջոցով:
  2. Եթե liveness-փորձի պայմանը չի կատարվում (օրինակ՝ HTTP սերվերը չի պատասխանում, հրամանը ավարտվում է սխալով):
  3. kubelet-ը գրանցում է ձախողումը:
  4. Մի քանի ձախողված փորձերից հետո (failureThreshold, initialDelaySeconds, periodSeconds, timeoutSeconds պարամետրերով կարգավորել):
  5. kubelet-ը ուղարկում է SIGKILL նշան ձախողված կոնտեյներին:
  6. Կոնտեյները ավարտվում է:
  7. kubelet-ը վերագործարկում է կոնտեյները նույն pod-ում:
  8. Liveness-փորձի գործընթացը վերսկսվում է:

Կարևոր է տարբերակել liveness-փորձը readiness-փորձից: Readiness-փորձը որոշում է կոնտեյների պատրաստակամությունը ընդունել տրաֆիկը: Եթե readiness-փորձը ձախողվում է, Service-ը չի ուղարկի տրաֆիկ այդ pod-ի օրինակին, բայց կոնտեյները չի վերագործարկվի: Liveness-փորձի ձախողումը ցույց է տալիս անսարքություն և վերագործարկման անհրաժեշտություն:

# Liveness-փորձի օրինակ spec.containers-ում
containers:
  - name: my-container
    image: my-image:latest
    livenessProbe:
      httpGet:
        path: /healthz
        port: 8080
      initialDelaySeconds: 15 # Նախնական պատահականություն առաջին ստուգումից առաջ
      periodSeconds: 20      # Ստուգումների միջեւ ժամանակը
      timeoutSeconds: 5       # Պատասխան սպասման ժամանակը
      failureThreshold: 3     # Ձախողումների քանակը վերագործարկումից առաջ