某一集群,双网卡,突然很多业务POD异常,排查发现DNS无法解析,进而怀疑coredns出现了问题。。。
查看coredns pod日志
1 reflector.go:134] github.com/coredns/coredns/plugin/kubernetes/controller.go:317: Failed to list *v1.Endpoints: Get https://172.30.0.1:443/api/v1/endpoints?limit=500&resourceVersion=0: dial tcp 172.30.0.1:443: connect: no route to host
问题来了,172.30.0.1 是谁 ?
想起 Kuberntes svc的cidr是 172.30.0.0/16, pod的cidr是 172.20.0.0/16
由刚才那个url,判断该url为Kubeapi 的地址
1 | #kubectl get svc |
发现172.30.0.1 是kubernetes svc的地址
1 | #kubectl describe svc kubernetes |
才发现这三个endpoint不对, (服务器IP已经改为 192.168.**了。。。。)
原因是 什么呢?
想起 eth0 换IP地址了,所以肯定和换IP地址有关。
解决办法:
1 | #systemctl restart kube-controller-manager.service |
改进方法:
内群内部通信走 eth0网卡,不再改变eth0的IP,如需改变IP,只改eth1不改eth0