请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

不在minikube环境里执行kubectl exec,用vagrant 环境报错

具体错误如下:
error:unable to upgrade connection: pod does not exist
但是kubectl get pods都有看到这个nginx-busybox

正在回答

2回答

您把get pods的输出,以及您kubectl exec的命令执行全部贴出来我看一下

0 回复 有任何疑惑可以回复我~
  • 提问者 weixin_慕瓜7378631 #1
    您好:
    kubectl exec 的命令是:
      kubectl exec nginx-busybox -it bash
    get pods的输出是:
     NAME            READY   STATUS    RESTARTS   AGE    IP          NODE        NOMINATED NODE   READINESS GATES
    nginx-busybox   2/2     Running   0          146m   10.32.0.2   k8s-node2   <none>           <none>
    回复 有任何疑惑可以回复我~ 2019-12-29 02:59:14
  • 提问者 weixin_慕瓜7378631 #2
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-12-29 17:31:53
提问者 weixin_慕瓜7378631 2019-12-29 17:31:31

找到原因了。

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 已经改变
-------------------------------------------------------------------------------
故障排除。

3 回复 有任何疑惑可以回复我~
  • 感谢!!!
    回复 有任何疑惑可以回复我~ 2020-04-17 22:52:58
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信