解决kubernetes(1.18.20) 网络不通问题(云虚机)

报错场景
pod在不同node上请求超时,coredns只有所在node才能ping通
解决思路

查看pod报错信息
查看k8s基础环境
查看系统内核是否兼容

uname -a

查看路由转发是否开启

cat /proc/sys/net/ipv4/ip_forward

查看kube-proxy是否使用的是ipvs规则

kubectl get cm -n kube-system kube-proxy -o yaml

查看kubernetes使用的ipvs节点上是否有规则

ipvsadm -l

查看是否有路由

route -n

查看flannel工作模式

发现使用的是hostgw网络模式,再加上外面一层安全组,所以pod之间不通
更换为vxlan网络模式,重启flannel,测试好用
解决方法:要么在安全组放开pod的请求或者更换flannel的网络模式

Kubernetes网络插件Flannel的3种工作模式

UDP模式(性能差)
VXLAN模式(性能较好)
host-gw模式(性能最高)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原因是flannel的host-gw模式不支持跨两层

所以要么去掉安全层,要么放开对pod的限制
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐