Kubernetes - Датчик готовности не работает для развертывания

Может кто-нибудь подскажите, пожалуйста, в чем проблема с моим файлом yaml для развертывания. Когда я снимаю датчик готовности, я вижу свой деплимент в kubectl get deployments как доступно. Но с проверкой готовности он остается недоступным, как показано ниже.

NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
neg-demo-app   1         1         1            0           2m33s

Ниже мой файл yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    run: neg-demo-app # Label for the Deployment
  name: neg-demo-app # Name of Deployment
spec: # Deployment's specification
  minReadySeconds: 60 # Number of seconds to wait after a Pod is created and its status is Ready
  selector:
    matchLabels:
      run: neg-demo-app
  template: # Pod template
    metadata:
      labels:
        run: neg-demo-app # Labels Pods from this Deployment
    spec: # Pod specification; each Pod created by this Deployment has this specification
      containers:
      - image: container_name  # Application to run in Deployment's Pods
        name: hostname # Container name
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8080
            scheme: HTTP
        readinessProbe:
          httpGet:
            path: /healthz
            port: 8080
            scheme: HTTP
      terminationGracePeriodSeconds: 60 # Number of seconds to wait for connections to terminate before shutting down Pods

1 ответ

Решение

Что я думаю, что вы добавили

minReadySeconds: 60 # Number of seconds to wait after a Pod is created and its status is Ready

minReadySeconds - это необязательное поле, которое задает минимальное количество секунд, в течение которых вновь созданный Pod должен быть готов без сбоев любого из его контейнеров, чтобы его можно было считать доступным. По умолчанию это 0 (Pod будет считаться доступным, как только он будет готов).

So your newly created app pod have to be ready for minReadySeconds 60 seconds to be considered as available.


initialDelaySeconds: Number of seconds after the container has started before liveness or readiness probes are initiated.

Поэтому initialDelaySeconds предшествует minReadySeconds.

container in the pod has started at 5 seconds. Readiness probe will be initiated at 5+initialDelaySeconds seconds. Assume Pod become ready at 7 seconds(7 > 5+initialDelaySeconds). So this pod will be available after 7+minReadySeconds seconds.

Пожалуйста, попробуйте добавить initialDelaySeconds в датчике покраснения и живучести, в противном случае попробуйте удалить minReadySeconds,

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