<p>This output says that I'm running kubernetes with <code>containerd</code> as the container runtime:</p>
<pre><code>k get nodes -o wide
NAME          STATUS   ROLES                  AGE   VERSION        INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
k8s-worker3   Ready    &lt;none&gt;                 12d   v1.24.4+k3s1   10.16.24.123   &lt;none&gt;        Ubuntu 20.04.2 LTS   5.15.0-48-generic   containerd://1.6.6-k3s1
k8s-worker1   Ready    &lt;none&gt;                 12d   v1.24.4+k3s1   10.16.24.121   &lt;none&gt;        Ubuntu 20.04.2 LTS   5.13.0-44-generic   containerd://1.6.6-k3s1
k8s-master    Ready    control-plane,master   12d   v1.24.4+k3s1   10.16.24.120   &lt;none&gt;        Ubuntu 20.04.4 LTS   5.15.0-46-generic   containerd://1.6.6-k3s1
k8s-worker2   Ready    &lt;none&gt;                 12d   v1.24.4+k3s1   10.16.24.122   &lt;none&gt;        Ubuntu 20.04.2 LTS   5.13.0-44-generic   containerd://1.6.6-k3s1
</code></pre>
<p>I'm deploying one of my pods, it gets scheduled on node <code>k8s-worker3</code>, and <code>kubectl describe pods/mypod</code> says the image was already on the node.</p>
<p>But when I run <code>ctr</code> on the node it shows that there NO images:</p>
<pre><code>user@k8s-worker3:~$ sudo ctr images list
REF TYPE DIGEST SIZE PLATFORMS LABELS
</code></pre>
<p>And <code>docker images</code> doesn't show the correct version of the image.</p>
<p>Here's the processes running containerd:</p>
<pre><code>user@k8s-worker3:~$ ps -ef | grep container
root         985       1  0 15:23 ?        00:00:00 /usr/bin/containerd
root        1106       1  0 15:23 ?        00:00:01 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root        1312    1057  0 15:23 ?        00:00:12 containerd -c /var/lib/rancher/k3s/agent/etc/containerd/config.toml -a /run/k3s/containerd/containerd.sock --state /run/k3s/containerd --root /var/lib/rancher/k3s/agent/containerd
root        1918       1  0 15:23 ?        00:00:03 /var/lib/rancher/k3s/data/577968fa3d58539cc4265245941b7be688833e6bf5ad7869fa2afe02f15f1cd2/bin/containerd-shim-runc-v2 -namespace k8s.io -id 5abd3c3104abf812422757d9534c33475819cbf43b64845dd23f535193fed09e -address /run/k3s/containerd/containerd.sock
root        1970       1  0 15:23 ?        00:00:00 /var/lib/rancher/k3s/data/577968fa3d58539cc4265245941b7be688833e6bf5ad7869fa2afe02f15f1cd2/bin/containerd-shim-runc-v2 -namespace k8s.io -id 8c339c15ab8abb3050810b5fcaed817363fcf3b06800b554711b1fa0e95006e2 -address /run/k3s/containerd/containerd.sock
root        3231       1  0 15:25 ?        00:00:01 /var/lib/rancher/k3s/data/577968fa3d58539cc4265245941b7be688833e6bf5ad7869fa2afe02f15f1cd2/bin/containerd-shim-runc-v2 -namespace k8s.io -id 354aa1df3c2a8492a4842efe3882785553501d77f61d9b5ef0bf3343ace2a518 -address /run/k3s/containerd/containerd.sock
user      4957    3094  0 15:48 pts/0    00:00:00 grep --color=auto container
</code></pre>
<p>So what is happening here?  Where is the image on the node??</p>

jersey bean
<p>I think that crictl is the best solution to monitor images and containers on the containerd (K8s).</p>
<p>Crictl details and commands:</p>
<pre><code>https://github.com/kubernetes-sigs/cri-tools/blob/master/docs/crictl.md 
</code></pre>
<p>Install crictl with curl:</p>
<pre><code>VERSION=&quot;v1.26.0&quot; # check latest version in /releases page
curl -L https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-${VERSION}-linux-amd64.tar.gz --output crictl-${VERSION}-linux-amd64.tar.gz
sudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin
rm -f crictl-$VERSION-linux-amd64.tar.gz
</code></pre>
<p>Configure to run crictl:</p>
<pre><code>sudo nano /etc/crictl.yaml

# copy followings: 
runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 10
debug: true
</code></pre>
<p>Sample commands:
List pods:</p>
<pre><code>sudo crictl pods
</code></pre>
<p>List images:</p>
<pre><code>sudo crictl images
</code></pre>
<p>List all pods, containers, images, find the containerid:</p>
<pre><code>sudo crictl ps -a
</code></pre>
<p>Logs for specific container:</p>
<pre><code>sudo crictl logs &lt;ContainerID&gt;
</code></pre>
<p>Run shell on the running container:</p>
<pre><code>sudo crictl exec -it &lt;ContainerID&gt; /bin/sh   
</code></pre>
<p>Stop Pod:</p>
<pre><code>sudo crictl stopp &lt;PodID&gt;  
</code></pre>
<p>Remove Pod:</p>
<pre><code>sudo crictl rmp &lt;PodID&gt; 
</code></pre>
<p>Remove Image:</p>
<pre><code>sudo crictl rmi &lt;ImageID&gt;
</code></pre>
<p>Pulls image from dockerhub:docker.io:</p>
<pre><code>sudo crictl pull alpine
</code></pre>
<p>Inspection of pods:</p>
<pre><code>sudo crictl inspectp &lt;PodID, e.g:4e2&gt; 
</code></pre>
