<p>Would there be any reason if I'm trying to run a pod on a k8s cluster which stays in the 'Completed' status forever but is never in ready status 'Ready 0/1' ... although there are core-dns , kube-proxy pods,etc running successfully scheduled under each node in the nodepool assigned to a k8s cluster ... all the worker nodes seems to be in healthy state</p>

Avi
<p>This sounds like the pod lifecycle has ended and the reasons is probably because your pod have finished the task it is meant for.</p>
<p>Something like next example will not do anything, it will be created successfully then started, will pull the image and then it will be marked as completed.</p>
<pre><code>apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: test-pod
    image: busybox
    resources:
</code></pre>
<p>Here is how it will look:</p>
<pre><code>NAMESPACE     NAME                                                             READY   STATUS      RESTARTS   AGE
default       my-pod                                                       0/1     Completed   1          3s
default       testapp-1                                                        0/1     Pending     0          92m
default       web-0                                                            1/1     Running     0          3h2m
kube-system   event-exporter-v0.2.5-7df89f4b8f-mc7kt                           2/2     Running     0          7d19h
kube-system   fluentd-gcp-scaler-54ccb89d5-9pp8z                               1/1     Running     0          7d19h
kube-system   fluentd-gcp-v3.1.1-gdr9l                                         2/2     Running     0          123m
kube-system   fluentd-gcp-v3.1.1-pt8zp                                         2/2     Running     0          3h2m
kube-system   fluentd-gcp-v3.1.1-xwhkn                                         2/2     Running     5          172m
kube-system   fluentd-gcp-v3.1.1-zh29w                                         2/2     Running     0          7d19h
</code></pre>
<p>For this case, I will recommend you to check your yaml, check what kind of pod you are running? and what is it meant for?</p>
<p>Even, and with test purposes, you can add a command argument to keep it running.</p>
<pre><code>command: [&quot;/bin/sh&quot;,&quot;-c&quot;]
args: [&quot;command one; command two &amp;&amp; command three&quot;]
</code></pre>
<p>something like:</p>
<pre><code>args: [&quot;-c&quot;, &quot;while true; do echo hello; sleep 10;done&quot;]
</code></pre>
<p>The yaml with commands added would look like this:</p>
<pre><code> apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: test-pod
    image: busybox
    resources:
    command: [&quot;/bin/sh&quot;,&quot;-c&quot;]
    args: [&quot;-c&quot;, &quot;while true; do echo hello; sleep 10;done&quot;]
</code></pre>
<p>Here is how it will look:</p>
<pre><code>NAMESPACE     NAME                                                             READY   STATUS    RESTARTS   AGE
default       my-pod                                                       1/1     Running   0          8m56s
default       testapp-1                                                        0/1     Pending   0          90m
default       web-0                                                            1/1     Running   0          3h
kube-system   event-exporter-v0.2.5-7df89f4b8f-mc7kt                           2/2     Running   0          7d19h
kube-system   fluentd-gcp-scaler-54ccb89d5-9pp8z                               1/1     Running   0          7d19h
kube-system   fluentd-gcp-v3.1.1-gdr9l                                         2/2     Running   0          122m
</code></pre>
<p>Another thing that will help is a <code>kubectl describe pod $POD_NAME</code>, to analyze this further.</p>
