K8S 集群的容器内部无法访问外部网络

  • Choerodon平台版本: 0.11.0 (SaaS)

K8S 集群服务器所在机房由于断电,重新启动后无法与猪齿鱼集群进行连接,随后发现集群内部无法访问外部网络,以至于 c7n agent 日志中一直报 timeout。

集群环境是使用 kubeadm-ansible 进行安装部署的。

  • 环境信息(如:节点信息):
NAME         STATUS    ROLES     AGE       VERSION
k8s-master   Ready     master    71d       v1.8.5
k8s-node01   Ready     <none>    71d       v1.8.5
k8s-node02   Ready     <none>    71d       v1.8.5
  • 报错日志:
E1205 17:43:18.443999       1 client.go:90] dial error ws://devops.service.choerodon.com.cn/agent/?version=0.11.0&clusterId=8&token=8dd6fba1-2f1b-47e2-ae67-0a772f47225f&key=cluster:8: dial tcp: lookup devops.service.choerodon.com.cn on 10.233.0.10:53: read udp 10.233.66.38:49137->10.233.0.10:53: i/o timeout
E1205 17:43:33.452298       1 client.go:90] dial error ws://devops.service.choerodon.com.cn/agent/?version=0.11.0&clusterId=8&token=8dd6fba1-2f1b-47e2-ae67-0a772f47225f&key=cluster:8: dial tcp: lookup devops.service.choerodon.com.cn on 10.233.0.10:53: read udp 10.233.66.38:59986->10.233.0.10:53: i/o timeout
E1205 17:43:48.457069       1 client.go:90] dial error ws://devops.service.choerodon.com.cn/agent/?version=0.11.0&clusterId=8&token=8dd6fba1-2f1b-47e2-ae67-0a772f47225f&key=cluster:8: dial tcp: lookup devops.service.choerodon.com.cn on 10.233.0.10:53: read udp 10.233.66.38:57788->10.233.0.10:53: i/o timeout
E1205 17:44:03.461084       1 client.go:90] dial error ws://devops.service.choerodon.com.cn/agent/?version=0.11.0&clusterId=8&token=8dd6fba1-2f1b-47e2-ae67-0a772f47225f&key=cluster:8: dial tcp: lookup devops.service.choerodon.com.cn on 10.233.0.10:53: read udp 10.233.66.38:33348->10.233.0.10:53: i/o timeout
E1205 17:44:18.466412       1 client.go:90] dial error ws://devops.service.choerodon.com.cn/agent/?version=0.11.0&clusterId=8&token=8dd6fba1-2f1b-47e2-ae67-0a772f47225f&key=cluster:8: dial tcp: lookup devops.service.choerodon.com.cn on 10.233.0.10:53: read udp 10.233.66.38:43445->10.233.0.10:53: i/o timeout
  • 原因分析:
    • 我将 kube-system 下的 kube-dns-* kube-flannel-* kube-proxy-* 的Pod删掉使其重新部署,问题依旧
    • 服务器恢复后发现docker服务为启动,遂执行 systemctl start dockersystemctl restart kubelet,问题依旧

你的服务器主机能否访问外部网络呢?

主机是可以访问外网的。

你好,清理iptables规则后重启网络组件后网络得以恢复。

安装k8s集群建议使用全新服务器进行安装哈。

感谢大佬远程相助,一套神操作之后目前已恢复正常。

不过我也希望您可以把刚刚清理的一些细节放在这个帖子里,放置后面的童鞋重蹈覆辙。

多谢!