Middle
კუბერნეტესში ტესტები რა მიზნით გამოიყენება?
sobes.tech AI
პასუხი AI-სგან
კუბერნეტესში გამოიყენება ტესტები კონტეინერების მდგომარეობის განსაზღვრასა და პოდების სიცოცხლის ციკლის მართვისთვის. ისინი საშუალებას აძლევენ კლასტერს ავტომატურად რეაგირება მოახდინოს პროგრამების მდგომარეობის ცვლილებებზე, უზრუნველყოს მათი ხელმისაწვდომობა და სტაბილურობა.
არსებობს სამი ძირითადი ტიპის ტესტი:
- Liveness probe (ცოცხლობის ტესტი): განსაზღვრავს, მუშაობს თუ არა პროგრამა კონტეინერში. თუ liveness probe დასრულდება შეცდომით, Kubernetes-ი გადატვირთავს კონტეინერს.
- Readiness probe (მზადყოფნის ტესტი): განსაზღვრავს, არის თუ არა კონტეინერი მზად მიიღოს ტრაფიკი. თუ readiness probe დასრულდება შეცდომით, Kubernetes დროებით ამოიღებს პოდს ხელმისაწვდომი წერტილებიდან სერვისისთვის, რომელიც მიმართავს მას.
- Startup probe (დაწყების ტესტი): განსაზღვრავს, დასრულდა თუ არა პროგრამის დაწყება. შეიძლება გამოყენებულ იქნას პროგრამებისთვის, რომლებიც საჭიროებენ ხანგრძლივ დროს ინიციალიზაციისთვის. თუ startup probe წარმატებით დასრულდა, შემდეგი შემოწმებები (liveness/readiness) იწყება განრიგით. თუ startup probe ვერ მოხერხდა მითითებულ დროს, Kubernetes-ი კლავს და გადატვირთავს კონტეინერს.
ტესტები შეიძლება განხორციელდეს სხვადასხვა მეთოდით:
- ExecAction: ასრულებს ბრძანებას კონტეინერში. წარმატება განსაზღვრავს დაბრუნებული კოდის მიხედვით (0 - წარმატება, სხვა - შეცდომა).
# ExecAction-ის მაგალითი liveness probe-ისთვის livenessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 periodSeconds: 5 - HTTPGetAction: აგზავნის HTTP GET მოთხოვნას მითითებულ პორტსა და გზაზე კონტეინერში. წარმატება განსაზღვრავს HTTP სტატუს კოდით (საშუალოდ 2xx ან 3xx).
# HTTPGetAction-ის მაგალითი readiness probe-ისთვის readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 3 - TCPSocketAction: ცდილობს establish connections TCP socket-ით მითითებულ პორტზე კონტეინერში. წარმატება განსაზღვრავს წარმატებით დამყარებულ კავშირს.
# TCPSocketAction-ის მაგალითი liveness probe-ისთვის livenessProbe: tcpSocket: port: 8080 initialDelaySeconds: 15 periodSeconds: 20
სწორი გამოყენება ტესტების კრიტიკულია პროგრამების სანდოობისა და გამძლეობისათვის Kubernetes-ში.