系统环境说明:

Ubuntu 20.04.3 LTS

该测试环境中,k8s使用kubeadm安装。

kube-proxy 有两种工作模式:iptables 和 ipvs 。

iptables模式下 ping 不通;

ipvs模式下可以ping通。

kube-proxy 默认工作在 iptables 模式下。

查看kube-proxy日志:

 

 进入一个pod,测试 ping 服务demo,发现无法ping通。

将kube-proxy修改为ipvs模式:

在每台k8s节点主机上加载 ip_vs 模块(不执行这一步好像也可以,因为系统重启后ip_vs模块被自动加载了):

临时加载:

modprobe ip_vs

查看配置:

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

修改配置:

kubectl edit cm kube-proxy -n kube-system

 

 重启 kube-proxy:

kubectl get pods -n kube-system | grep kube-proxy | awk '{print $1}' | xargs kubectl delete pod -n kube-system

再次查看kube-proxy日志:

 在之前的pod中,继续测试 ping 服务demo,发现已经可以ping通了。

Logo

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

更多推荐