无法从主机连接到kubernetes吊舱:i/o超时

无法从主机连接到kubernetes吊舱:i/o超时,kubernetes,Kubernetes,我将kubernetes集群配置为一个主节点和一个节点,运行主节点和节点的机器不在同一网络中。为了联网,我安装了calico,所有的播客都在运行。用于测试我使用的群集,以及从主计算机运行以下命令时: kubectl exec -it shell-demo -- /bin/bash 我收到了错误消息: Error from server: error dialing backend: dial tcp 10.138.0.2:10250: i/o timeout ip 10.138.0.2位于节

我将kubernetes集群配置为一个主节点和一个节点,运行主节点和节点的机器不在同一网络中。为了联网,我安装了calico,所有的播客都在运行。用于测试我使用的群集,以及从主计算机运行以下命令时:

kubectl exec -it shell-demo -- /bin/bash
我收到了错误消息:

Error from server: error dialing backend: dial tcp 10.138.0.2:10250: i/o timeout
ip 10.138.0.2位于节点计算机上的eth0接口上

我需要进行什么配置才能从主机访问pod

编辑

kubectl get all--所有名称空间-o范围输出:

default       shell-demo                           1/1       Running   0          10s       192.168.4.2   node-1
kube-system   calico-node-7wlqw                    2/2       Running   0          49m       10.156.0.2    instance-1
kube-system   calico-node-lnk6d                    2/2       Running   0          35s       10.132.0.2    node-1
kube-system   coredns-78fcdf6894-cxgc2             1/1       Running   0          50m       192.168.0.5   instance-1
kube-system   coredns-78fcdf6894-gwwjp             1/1       Running   0          50m       192.168.0.4   instance-1
kube-system   etcd-instance-1                      1/1       Running   0          49m       10.156.0.2    instance-1
kube-system   kube-apiserver-instance-1            1/1       Running   0          49m       10.156.0.2    instance-1
kube-system   kube-controller-manager-instance-1   1/1       Running   0          49m       10.156.0.2    instance-1
kube-system   kube-proxy-b64b5                     1/1       Running   0          50m       10.156.0.2    instance-1
kube-system   kube-proxy-xxkn4                     1/1       Running   0          35s       10.132.0.2    node-1
kube-system   kube-scheduler-instance-1            1/1       Running   0          49m       10.156.0.2    instance-1

谢谢

检查您在主机上的状态之前。请验证以下内容

请运行以下命令以检查群集信息:

setenforce 0
firewall-cmd --permanent --add-port=6443/tcp
firewall-cmd --permanent --add-port=2379-2380/tcp
firewall-cmd --permanent --add-port=10250/tcp
firewall-cmd --permanent --add-port=10251/tcp
firewall-cmd --permanent --add-port=10252/tcp
firewall-cmd --permanent --add-port=10255/tcp
firewall-cmd --reload
modprobe br_netfilter
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
在主节点和辅助节点上运行上述命令

然后运行以下命令检查节点状态


kubectl获取节点

我也有这个问题。我不知道你是否在Azure上,但我在,我通过删除tunnelfront吊舱并让Kubernetes重新启动它解决了这个问题:

kubectl -n kube-system delete po -l component=tunnel

这是我从

获得的一个解决方案,听起来像是需要修改防火墙规则,以允许从您希望使用
exec
logs
的任何计算机访问端口10250,因为这两个命令都直接连接到节点上的
kubelet
。所有防火墙规则都是禁用的。我试着从主人那里进入吊舱。我认为问题在于kubernetes试图通过私有ip“10.138.0.2”访问pod。显示
kubectl get all的输出--all namespace=true
命令我在上面添加了它。谢谢kubernetes试图通过私有ip“10.138.0.2”访问pod。那么,您希望使用什么ip?为了非常清楚:
exec
logs
不使用SDN,它们总是通过“主机”网络传输,因为它们被设计为由您的工作站访问,而不是从集群内访问。我运行了所有命令,但收到了相同的错误。我认为问题在于库伯内特斯试图访问pod thourgh的私人ip“10.138.0.2”@Dorin你是如何解决这个问题的。