Kubernetes - 就绪探测不适用于部署

Kubernetes - Readiness probe not working for deployment

谁能告诉我用于部署的 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

我认为你已经添加了

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

minReadySeconds is an optional field that specifies the minimum number of seconds for which a newly created Pod should be ready without any of its containers crashing, for it to be considered available. This defaults is 0 (the Pod will be considered available as soon as it is ready).

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.

So initialDelaySeconds comes before 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.

请尝试在 rediness 探针和 liveness 探针中添加 initialDelaySeconds 否则尝试删除 minReadySeconds