kubeadm join加入K8s集群失败:CRI端点选择与连接问题求助
解决Kubeadm Join时CRI端点冲突及容器运行时不可用问题
步骤1:确认系统中实际运行的容器运行时
先检查错误提示里提到的两个容器运行时状态:
- 检查containerd状态:
systemctl status containerd - 检查cri-dockerd(对应Docker运行时)状态:
systemctl status cri-dockerd
注:你之前指定的
/var/run/crio/crio.sock不存在,说明系统未安装或未启动CRI-O,直接排除该选项。
步骤2:根据运行的容器运行时执行正确的Join命令
- 若containerd处于运行状态,使用以下命令:
kubeadm join server:port --token xxx --discovery-token-ca-cert-hash sha256:xxxx --cri-socket unix:///var/run/containerd/containerd.sock - 若cri-dockerd处于运行状态(即使用Docker作为容器运行时),使用以下命令:
kubeadm join server:port --token xxx --discovery-token-ca-cert-hash sha256:xxxx --cri-socket unix:///var/run/cri-dockerd.sock
步骤3:(可选)统一容器运行时(推荐)
如果两个容器运行时同时运行,建议仅保留一个(Kubernetes官方更推荐containerd):
- 停止并禁用不需要的服务,例如保留containerd时关闭cri-dockerd:
systemctl stop cri-dockerd && systemctl disable cri-dockerd - 重新执行对应容器运行时的Join命令即可。
内容的提问来源于stack exchange,提问作者noob_coder
相关产品推荐
相关产品推荐

