<p>I created a Pod with two container – one container was successfully created, while other container failed.</p>
<p>Now, when I execute below command then I see that “Status” is “Error”:</p>
<pre><code>C:\Users\test123&gt;kubectl get pod pod3-two-nginx-containers-port-error
NAME                                   READY   STATUS   RESTARTS   AGE
pod3-two-nginx-containers-port-error   1/2     Error    0          134m
</code></pre>
<p>But when I execute below command then I see that &quot;Status&quot; is &quot;Running&quot;:</p>
<pre><code>C:\Users\test123&gt;kubectl describe pod pod3-two-nginx-containers-port-error
Name:         pod3-two-nginx-containers-port-error
Namespace:    default
Priority:     0
Node:         minikube/192.168.49.2
Start Time:   Thu, 18 Mar 2021 12:50:19 +0530
Labels:       &lt;none&gt;
Annotations:  &lt;none&gt;
Status:       Running
IP:           10.244.0.9
IPs:
</code></pre>
<p>Why Kubernetes is showing wrong statuses?</p>

<p>Kubernetes is not showing the wrong status.</p>
<ul>
<li>From <code>kubectl get pod &lt;&lt;POD_NAME&gt;&gt;</code> command you get the Pod’s status.</li>
<li>From <code>kubectl describe pod &lt;&lt;POD_NAME&gt;&gt;</code> you get the Pod <strong>phase’s</strong> status.</li>
</ul>
<p><code>kubectl describe pod</code> is giving you status as RUNNING because Pod has been bound to a node + all of the containers have been created + at least one container is still running. Read more about <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase" rel="nofollow noreferrer">Pod phases</a>. Also read about <a href="https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions" rel="nofollow noreferrer">Pod conditions</a>.</p>
<p><code>kubectl get pod</code> is giving you status as ERROR because Pod is not in healthy state. Right now I do not have link where you can read about what STATUS field means in <code>kubectl get pod</code> but probably I will find and share later.</p>
<p>Another way you can verify this is by running <code>kubectl get pods --field-selector=status.phase=Running</code> command. If you get you Pod listed here then it is another way you can be sure of that status shown in <code>kubectl describe pod</code> command is Pod phase's status.</p>
