如何通过SSH登录使用containerd运行时的Kind集群节点
Kind集群(containerd运行时)节点登录方法
方法1:直接通过容器exec进入(无需配置SSH,推荐)
Kind节点本质是宿主机上运行的容器实例,可直接通过containerd配套的管理工具进入,操作效果和SSH登录完全一致:
- 若使用
nerdctl作为containerd管理工具(Kind 0.11+官方推荐配套工具):- 查看所有Kind节点容器:
# Kind容器默认在k8s.io namespace下,查不到可添加namespace参数 nerdctl -n k8s.io ps --filter "name=local-cluster-"- 进入指定节点,示例为进入控制面节点:
需进入其他worker节点时,替换命令中节点名称为对应节点名即可。nerdctl -n k8s.io exec -it local-cluster-control-plane bash - 若使用
crictl作为containerd管理工具:- 查看所有Kind节点容器ID:
crictl ps --name local-cluster-- 替换下方命令中<容器ID>为上一步查询到的目标节点ID,执行进入节点:
crictl exec -it <容器ID> bash
方法2:配置SSH服务实现SSH协议登录(仅特定需求场景使用)
如果你的场景必须通过SSH协议登录节点,可按以下步骤配置:
- 先通过上述exec方法进入目标节点,安装SSH服务:
apt update && apt install -y openssh-server
- 配置登录认证,二选一即可:
- 密码登录:设置root用户密码
然后修改SSH配置允许root密码登录:passwd root # 按提示输入两次自定义密码即可sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config- 密钥登录:将你的公钥写入节点
/root/.ssh/authorized_keys文件即可
- 重启SSH服务生效:
systemctl restart sshd
- 登录节点,使用你
k get nodes查询到的对应节点INTERNAL-IP即可:
ssh root@172.18.0.2 # 密码登录输入之前设置的密码,密钥登录可直接进入
注意:Kind节点重启后,上述安装的SSH服务和配置会重置丢失,需要长期使用SSH登录的话可在创建Kind集群时通过集群配置文件预安装配置SSH服务。
内容的提问来源于stack exchange,提问作者deepak
相关产品推荐
相关产品推荐

