Let's say I have a deployment template like this
spec: minReadySeconds: 15 readinessProbe: failureThreshold: 3 httpGet: path: / port: 80 scheme: HTTP initialDelaySeconds: 20 periodSeconds: 20 successThreshold: 1 timeoutSeconds: 5
How will this affect the newly versions of my app? Will the minReadySeconds
and initialDelaySeconds
count at the same time? Will the initialDelaySeconds
come first then minReadySeconds
?
Increase the Failure Threshold of the Readiness Probe To increase the readiness probe failure threshold, configure the Managed controller item and update the value of "Readiness Failure Threshold". By default, it is set to 100 (100 times). You may increase it to, for example, 300 .
minReadySeconds is an optional field that specifies the minimum number of seconds for which a newly created Pod should be read without any of its containers crashing, for it to be considered available. This defaults to 0 (the Pod will be considered available as soon as it is ready).
The kubelet uses readiness probes to know when a container is ready to start accepting traffic. A Pod is considered ready when all of its containers are ready. One use of this signal is to control which Pods are used as backends for Services. When a Pod is not ready, it is removed from Service load balancers.
If the readiness probe fails, the endpoints controller removes the Pod's IP address from the endpoints of all Services that match the Pod. The default state of readiness before the initial delay is Failure . If a container does not provide a readiness probe, the default state is Success .
From Kubernetes Deployment documentation:
.spec.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 to 0 (the Pod will be considered available as soon as it is ready). To learn more about when a Pod is considered ready, see Container Probes
So your newly created app pod have to be ready for .spec.minReadySeconds
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
.
Lets say, container in the pod has started at t
seconds. Readiness probe will be initiated at t+initialDelaySeconds
seconds. Assume Pod become ready at t1
seconds(t1 > t+initialDelaySeconds
). So this pod will be available after t1+minReadySeconds
seconds.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With