Sobes.tech
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.