Search code examples
kubernetes

How to get number of pods (available or terminating) in kubernetes?


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 ?


Solution

  • 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.