Sobes.tech
Middle

რა ხდება, თუ Kubernetes-ში liveness-ტესტი ვერ ჩაივლის?

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-ტესტი ვერ ჩაითვლება წარმატებულად, სერვისი არ გამოაგზავნის ტრეფიკს ამ 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     # გაუქმების მცდელობების რაოდენობა გადატვირთვამდე