Как дать понять Kubernetes, что программа запущена и готова

«Как дать понять Kubernetes, что программа запущена и готова» — вопрос из категории DevOps, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Kubernetes для этого используются Readiness Probes. Они проверяют, готов ли контейнер принимать трафик.

Пример в манифесте:

readinessProbe:
  httpGet:
    path: /health
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 10

Или проверка через TCP:

readinessProbe:
  tcpSocket:
    port: 8080
  initialDelaySeconds: 5

Также можно использовать команду:

readinessProbe:
  exec:
    command:
      - cat
      - /tmp/ready

Если проба не проходит, Pod не получит трафик от Service.