Kubernetes-准备就绪探针不适用于部署

时间:2019-08-07 02:05:22

标签: kubernetes google-compute-engine readinessprobe

有人可以告诉我要部署的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 个答案:

答案 0 :(得分:2)

我认为您已经添加了

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.

请尝试在{red1”和“ liveness”探针中添加initialDelaySeconds,否则请尝试删除minReadySeconds