无法从 master 连接到 kubernetes pod:i/o 超时

Dor*_*rin 5 kubernetes

我配置了 1 个主节点和一个节点的 kubernetes 集群,运行主节点和节点的机器不在同一网络中。对于网络,我安装了 calico 并且所有 pod 都在运行。为了测试集群,我使用了get shell 示例,当我从主机运行以下命令时:

kubectl exec -it shell-demo -- /bin/bash
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Error from server: error dialing backend: dial tcp 10.138.0.2:10250: i/o timeout
Run Code Online (Sandbox Code Playgroud)

IP 10.138.0.2 位于节点计算机上的 eth0 接口上。

我需要进行什么配置才能从 master 访问 pod?

编辑

kubectl 获取所有 --all-namespaces -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
Run Code Online (Sandbox Code Playgroud)

谢谢!

小智 1

在检查您的 Master 状态之前,请确认以下事项。

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

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
Run Code Online (Sandbox Code Playgroud)

在主节点和工作节点上运行上述命令。

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

kubectl 获取节点