I need to find the number of pods currently NOT terminated (can be available, terminating, etc.) in order to prevent deployment from starting if there are still some pods not terminated.
UPDATE: If there are no pods available, I should get "0". Is it possible ?
To check the state of a Pod's containers, you can use kubectl describe pod <name-of-pod> . The output shows the state for each container within that Pod.
With the default maximum of 110 Pods per node for Standard clusters, Kubernetes assigns a /24 CIDR block (256 addresses) to each of the nodes.
You can try:
kubectl get pods --field-selector=status.phase!=Succeeded,status.Phase!=Failed
If you look at the Pod Phases you can see that this covers all possible pods where all containers are terminated (either failed or succeeded)
If you specifically want the count you could use a bit of jq
and use:
kubectl get pods --field-selector=status.phase!=Succeeded,status.Phase!=Failed --output json | jq -j '.items | length'
This returns the # of pods that are not Terminated
.
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