Middle
За какво се използват пробите в Kubernetes?
sobes.tech AI
Отговор от AI
Пробите в Kubernetes се използват за определяне състоянието на контейнерите и управлението на жизнения цикъл на подовете. Те позволяват на клъстера автоматично да реагира на промените в състоянието на приложенията, осигурявайки тяхната наличност и стабилност.
Съществуват три основни типа проби:
- Проба за жизнеспособност (Liveness probe): Определя дали приложението в контейнера работи. Ако пробата за жизнеспособност се провали, Kubernetes рестартира контейнера.
- Проба за готовност (Readiness probe): Определя дали контейнерът е готов да приема трафик. Ако пробата за готовност се провали, Kubernetes временно изключва пода от списъка с налични крайни точки за услугата, която го насочва.
- Проба за стартиране (Startup probe): Определя дали приложението в контейнера е завършило стартирането си. Може да се използва за приложения, които изискват дълго време за инициализация. Ако пробата за стартиране е успешна, следващите проверки (жизнеспособност/готовност) започват по график. Ако не успее в зададения срок, Kubernetes убива и рестартира контейнера.
Пробите могат да бъдат реализирани по различни начини:
- ExecAction: Изпълнява команда вътре в контейнера. Успехът се определя по кода за връщане (0 - успех, друг - грешка).
# Пример за ExecAction за проба за жизнеспособност livenessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 periodSeconds: 5 - HTTPGetAction: Изпраща HTTP GET заявка към посочения порт и път на контейнера. Успехът се определя по HTTP статус кода (обикновено 2xx или 3xx).
# Пример за HTTPGetAction за проба за готовност readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 3 - TCPSocketAction: Опитва да установи TCP връзка на посочения порт на контейнера. Успехът се определя по успешното установяване на връзката.
# Пример за TCPSocketAction за проба за жизнеспособност livenessProbe: tcpSocket: port: 8080 initialDelaySeconds: 15 periodSeconds: 20
Правилната употреба на пробите е от съществено значение за надеждността и устойчивостта на приложенията в Kubernetes.