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