Должен ли я создать API для проверки готовности к работе kubernetes - PullRequest
1 голос
/ 18 апреля 2019

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

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

Ответы [ 2 ]

3 голосов
/ 18 апреля 2019

Как @ Томас ответил на запрос 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-готовность-зонды /

3 голосов
/ 18 апреля 2019

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

...