-->

k8s 访问Pod 时好时坏

2020-12-11 14:49发布

问题:

k8s 集群环境: 1 master, 2 Node
在外网通过NodeIp:Port 可以正常访问, 内网NodeIp:Port 访问会一次成功一次失败的循环
在pod容器中通过ClusterIP:Port 访问也是一次成功一次失败, 效果如下:

通过podIP:Port 访问正常
replicas: 2, 都可以通过podIP:Port 访问正常

有人知道啥问题吗,

回答1:

原因找到了:
这是由于通过 kubeadm安装的配置了--pod-network-cidr:
kubeadm init --pod-network-cidr=10.222.0.0/16
然后k8s 调度到每个Node 部署Pod 时候网络不在10.222.0.0/16 这个子网下面, 就会导致Node之间不能互相通信
修正方式:

kubectl delete -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
vim kube-flannel.yml # 修改net-conf.json 的Network 值和--pod-network-cidr 的值一致就可以了
# 重新应用
kubectl apply -f kube-flannel.yml