Должен ли я создать API для проверки готовности к работе kubernetes

Я пытаюсь создать RollingUpdate и пытаюсь использовать приведенный ниже код, чтобы увидеть, появился ли pod или нет. Должен ли я создать в своем приложении явный путь API, например /healthz, чтобы kubernetes проверял его и получал 200 статусов назад, или его внутренний URL для kubernetes?

specs:
   containers:
   - name: liveness
     readinessProbe:
    httpGet:
      path: /healthz
      port: 80

2 ответа

Решение

Как @ Томас ответил на запрос Http: "Если приложение не предоставляет конечную точку для проверки успешного ответа. Вы можете использовать TCP Probe

kubelet пытается установить TCP-соединение на порту контейнера. Если он может установить соединение, контейнер считается исправным; если не может, то считается нездоровым

например, в вашем случае это будет так

    ports:
    - containerPort: 80
    readinessProbe:
      tcpSocket:
        port: 80
      initialDelaySeconds: 5
      periodSeconds: 10
    livenessProbe:
      tcpSocket:
        port: 80
      initialDelaySeconds: 15
      periodSeconds: 20

Вы можете получить дополнительную информацию здесь configure-liveness-готовность-зонды /

Kubernetes сделает запрос к контейнеру на порт 80 и путь /healthz и ожидает, что код состояния в диапазоне 2xx-3xx будет считаться успешным. Если ваше приложение не обеспечивает сопоставление пути и возвращает 404, kubernetes предполагает, что проверка работоспособности завершается неудачно. В зависимости от вашего приложения вам нужно вручную предоставить API, если это не сделано вашей структурой. (Вы можете проверить с помощью curl или wget путь к другому модулю и проверить результат)

Другие вопросы по тегам