<p>I'm using Java Fabric k8s client to get List of the PODs where phase is equal to  &quot;Running&quot;.
I have 2 containers in the POD. What I noticed is getPods() method is returning POD as Running even one of the 2 containers is still not in READY state.</p>
<p>Why is this happening when all the containers in the pod are not in READY state?</p>

Ravi Teja Muddada
<p><code>Running</code> is a Pod <em>status</em> state that is defined as:</p>
<blockquote>
<p>&quot;The Pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting.&quot;</p>
</blockquote>
<p>Just one of the Pod's containers needs to be booting up or running to sufficiently mark the whole Pod as <code>Running</code>. Possible states are <code>Pending, Running, Succeeded, Failed, Unknown</code>. Think of these as the highest-level description of the Pod state. Each of these states has a Pod <em>condition</em> array amongst other metadata that provide more details about the containers inside.</p>
<p><code>Ready</code> is a Pod <em>condition</em> which is a sub-state of a Pod <code>status</code> (<code>status.condition</code>). In simplest terms, when a Pod is marked as <code>Ready</code>, it's fully booted up and able to accept <em>traffic</em>. Sometimes this does depend on how your Pod spec is set up; for example, if your Pod has a <code>readinessProbe</code>, it reaches <code>Ready</code> only if the <code>readinessProbe</code> succeeds.</p>
<p>Example: <code>kubectl get po</code></p>
<pre><code>NAME                        READY   STATUS    RESTARTS   AGE
nani-play-8b6b89455-9g674   1/1     Running   0          13s
</code></pre>
<p>If I explore deeper into the pod via <code>kubectl describe po nani-play-8b6b89455-9g674</code>, amongst the other information is</p>
<pre><code>Conditions:
  Type              Status
  Initialized       True 
  Ready             True     &lt;---- 👀
  ContainersReady   True 
  PodScheduled      True 
</code></pre>
