不在minikube环境里执行kubectl exec,用vagrant 环境报错
来源:10-4 k8s调度的最小单位pod(下)
weixin_慕瓜7378631
2019-12-29
具体错误如下:
error:unable to upgrade connection: pod does not exist
但是kubectl get pods都有看到这个nginx-busybox
2回答
-
您把get pods的输出,以及您kubectl exec的命令执行全部贴出来我看一下
022019-12-29 -
weixin_慕瓜7378631
提问者
2019-12-29
找到原因了。
Vagrant 在多主机模式时每个主机的 eth0 网口 ip 都是 10.0.2.15,这个网口是所有主机访问公网的出口,用于 nat 转发。而 eth1才是主机真正的 IP。kubelet 在启动时默认读取的是 eth0 网卡的 IP,因此在集群部署完后 kubect get node -o wide 查看到节点的 IP 都是 10.0.2.15。
k8s 节点 IP 获取不对导致访问节点出现问题,那么解决方法就是调整 kubelet 参数设置正确的
IP 地址:
编辑 /etc/sysconfig/kubelet 文件,KUBELET_EXTRA_ARGS 环境变量添加 --node-ip 参数:
KUBELET_EXTRA_ARGS="--node-ip=<eth1 网口 IP>"
kubelet:systemctl restart kubelet
执行 kubectl get node -o wide 发现节点 IP 已经改变
-------------------------------------------------------------------------------
故障排除。312020-04-17
相似问题