Middle
Kubernetes-də sınaqlar nə üçün istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
Kubernetes-də sınaqlar konteynerlərin vəziyyətini müəyyən etmək və podların həyat dövrünü idarə etmək üçün istifadə olunur. Onlar klasterin tətbiqlərin vəziyyətindəki dəyişikliklərə avtomatik cavab verməsinə imkan verir və onların əlçatanlığını və sabitliyini təmin edir.
Üç əsas sınaq növü mövcuddur:
- Yaşayış sınağı (Liveness probe): Konteynerdəki tətbiqin işləyib-işləmədiyini müəyyən edir. Əgər yaşama sınağı uğursuz olarsa, Kubernetes konteyneri yenidən başlatır.
- Hazır olma sınağı (Readiness probe): Konteynerin trafik qəbul etməyə hazır olub-olmadığını müəyyən edir. Əgər hazır olma sınağı uğursuz olarsa, Kubernetes müvəqqəti olaraq podu mövcud son nöqtələr siyahısından çıxarır.
- Başlanğıc sınağı (Startup probe): Konteynerdə tətbiqin başladığını müəyyən edir. Uzun müddət tələb edən tətbiqlər üçün istifadə oluna bilər. Əgər başlanğıc sınağı uğurlu olarsa, növbəti yoxlamalar (yaşayış/hazır olma) cədvələ uyğun olaraq başlayır. Əgər müəyyən vaxtda uğursuz olarsa, Kubernetes konteyneri öldürür və yenidən başlatır.
Sınaqlar müxtəlif üsullarla həyata keçirilə bilər:
- ExecAction: Konteyner daxilində bir əmri icra edir. Uğur geri dönüş kodu ilə müəyyən edilir (0 - uğur, başqa - səhv).
# Yaşayış sınağı üçün ExecAction nümunəsi livenessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 periodSeconds: 5 - HTTPGetAction: Konteynerin göstərilən port və yola HTTP GET sorğusu göndərir. Uğur HTTP status kodu ilə müəyyən edilir (adətən 2xx və ya 3xx).
# Hazır olma sınağı üçün HTTPGetAction nümunəsi readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 3 - TCPSocketAction: Konteynerin göstərilən portunda TCP bağlantısı qurmağa çalışır. Uğur uğurlu əlaqə ilə müəyyən edilir.
# Yaşayış sınağı üçün TCPSocketAction nümunəsi livenessProbe: tcpSocket: port: 8080 initialDelaySeconds: 15 periodSeconds: 20
Sınaqların düzgün istifadəsi Kubernetes-də tətbiqlərin etibarlılığı və xəta tolerantlığını təmin etmək üçün çox vacibdir.