我想访问我的广告连播时出现错误:
错误:无法升级连接:pod不存在
这是一个包含3个节点的群集,下面有一些详细信息。预先感谢
root@kubm:~/deploy/nginx# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
kubm Ready master 37h v1.17.0 10.0.2.15 <none> Ubuntu 16.04.6 LTS 4.4.0-150-generic docker://19.3.5
kubnode Ready <none> 37h v1.17.0 10.0.2.15 <none> Ubuntu 16.04.6 LTS 4.4.0-150-generic docker://19.3.5
kubnode2 Ready <none> 37h v1.17.0 10.0.2.15 <none> Ubuntu 16.04.6 LTS 4.4.0-150-generic docker://19.3.5
root@kubm:~/deploy/nginx# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-59c9f8dff-v7dvg 1/1 Running 0 16h 10.244.2.3 kubnode2 <none> <none>
root@kubm:~/deploy/nginx# kubectl exec -it nginx-59c9f8dff-v7dvg -- /bin/bash
**error: unable to upgrade connection: pod does not exist**
答案 0 :(得分:1)
我第一次使用Vagrant
和Virtualbox
运行集群时遇到了相同的问题。
在KUBELET_EXTRA_ARGS=--node-ip=x.x.x.x
中添加x.x.x.x
,其中/etc/default/kubelet
是您的VM的IP(例如,这可以是配置脚本的一部分),然后重新启动kubelet(systemctl restart kubelet
)可以修复问题。
这是向kubelet
添加额外的运行时参数的推荐方法,如/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
所示。或者,您也可以编辑kubelet
下的/etc/kubernetes/kubelet.conf
配置文件
答案 1 :(得分:0)
10.0.2.15
IP地址是virtualbox
NAT
的默认地址
如果使用VM
部署vagrantfile
,则eth0
适配器将使用10.0.2.15
IP地址,而eth1
适配器将被分配另一个IP地址。
K8s
使用eth0
适配器在Pod之间路由数据包。
答案 2 :(得分:-2)
我使用以下命令进入吊舱。
kubectl exec -i -t <pod-name> -- /bin/bash
注意 -i
和-t
标志在命令上有空格。
如果您有多容器容器,则应使用-c标志传递容器名称,否则默认情况下它将连接到POD中的第一个容器。
ubuntu@cluster-master:~$ kubectl exec -i -t nginx -- /bin/bash
root@nginx:/# whoami
root
root@nginx:/# date
Tue Jan 7 14:12:29 UTC 2020
root@nginx:/#
请参阅命令的帮助部分 kubectl exec --help