<p>I have created a Kind cluster with containerd runtime.
Here is my node:</p>
<pre><code>root@dev-001:~# k get nodes -o wide
NAME                          STATUS   ROLES                  AGE    VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE       KERNEL-VERSION     CONTAINER-RUNTIME
local-cluster-control-plane   Ready    control-plane,master   7d8h   v1.20.2   172.18.0.2    &lt;none&gt;        Ubuntu 20.10   5.4.0-81-generic   containerd://1.4.0-106-gce4439a8
local-cluster-worker          Ready    &lt;none&gt;                 7d8h   v1.20.2   172.18.0.5    &lt;none&gt;        Ubuntu 20.10   5.4.0-81-generic   containerd://1.4.0-106-gce4439a8
local-cluster-worker2         Ready    &lt;none&gt;                 7d8h   v1.20.2   172.18.0.3    &lt;none&gt;        Ubuntu 20.10   5.4.0-81-generic   containerd://1.4.0-106-gce4439a8
local-cluster-worker3         Ready    &lt;none&gt;                 7d8h   v1.20.2   172.18.0.4    &lt;none&gt;        Ubuntu 20.10   5.4.0-81-generic   containerd://1.4.0-106-gce4439a8
</code></pre>
<p>How I can ssh into nodes?</p>
<p>Kind version: 0.11.1 or greater</p>
<p>Runtime: containerd ( not docker )</p>

<p>Kind Kuberenetes uses Docker to <strong><a href="https://kind.sigs.k8s.io/" rel="noreferrer">create container(s) which will be Kubernetes node(s)</a></strong>:</p>
<blockquote>
<p><a href="https://sigs.k8s.io/kind" rel="noreferrer">kind</a> is a tool for running local Kubernetes clusters using Docker container “nodes”.</p>
</blockquote>
<p>So basically the layers are: your host -&gt; containers hosted on yours host's docker which are acting as <strong>Kubernetes nodes</strong> -&gt; on nodes there are container runtimes used for running pods</p>
<p>In order to SSH into nodes you need to exec into docker containers. Let's do it.</p>
<p>First, we will get list of nodes by running <code>kubectl get nodes -o wide</code>:</p>
<pre><code>NAME                 STATUS   ROLES                  AGE     VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE       KERNEL-VERSION    CONTAINER-RUNTIME
kind-control-plane   Ready    control-plane,master   5m5s    v1.21.1   172.18.0.2    &lt;none&gt;        Ubuntu 21.04   5.11.0-1017-gcp   containerd://1.5.2
kind-worker          Ready    &lt;none&gt;                 4m38s   v1.21.1   172.18.0.4    &lt;none&gt;        Ubuntu 21.04   5.11.0-1017-gcp   containerd://1.5.2
kind-worker2         Ready    &lt;none&gt;                 4m35s   v1.21.1   172.18.0.3    &lt;none&gt;        Ubuntu 21.04   5.11.0-1017-gcp   containerd://1.5.2
</code></pre>
<p>Let's suppose we want to SSH into <code>kind-worker</code> node.</p>
<p>Now, we will get list of docker containers (<code>docker ps -a</code>) and check if all nodes are here:</p>
<pre><code>CONTAINER ID   IMAGE                  COMMAND                  CREATED          STATUS         PORTS                       NAMES
7ee204ad5fd1   kindest/node:v1.21.1   &quot;/usr/local/bin/entr…&quot;   10 minutes ago   Up 8 minutes                               kind-worker
434f54087e7c   kindest/node:v1.21.1   &quot;/usr/local/bin/entr…&quot;   10 minutes ago   Up 8 minutes   127.0.0.1:35085-&gt;6443/tcp   kind-control-plane
2cb2e9465d18   kindest/node:v1.21.1   &quot;/usr/local/bin/entr…&quot;   10 minutes ago   Up 8 minutes                               kind-worker2
</code></pre>
<p>Take a look at the <code>NAMES</code> column - here are nodes names used in Kubernetes.</p>
<p>Now we will use standard <a href="https://docs.docker.com/engine/reference/commandline/exec/" rel="noreferrer"><code>docker exec</code> command</a> to connect to the running container and connect to it's shell - <code>docker exec -it kind-worker sh</code>, then we will run <code>ip a</code> on the container to check if IP address matches the address from the <code>kubectl get nodes</code> command:</p>
<pre><code># ls
bin  boot  dev  etc  home  kind  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
# ip a
1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
...
11: eth0@if12: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP group default 
    inet 172.18.0.4/16 brd 172.18.255.255 scope global eth0
    ...
# 
</code></pre>
<p>As can see, we successfully connected to the node used by Kind Kubernetes - the IP address <code>172.18.0.4</code> matches the IP address from the <code>kubectl get nodes</code> command.</p>
