Kubernetes下pod无法访问Service的ClusterIP解决方法

437 阅读1分钟

解决方案

开启ipvs,修改kube-proxy的配置文件,添加modeipvs

首先查看是否已安装ipvs

rpm -qa |grep ipvs

image.png

所有节点安装ipvs

yum -y install ipset ipvsadm

设置ipvs

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
 
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF

chmod +x /etc/sysconfig/modules/ipvs.modules
/bin/bash /etc/sysconfig/modules/ipvs.modules

修改kube-proxy的配置文件,添加modeipvs

kubectl edit cm kube-proxy -n kube-system

···
mode: "ipvs"
···

:wq 保存

删除所有的kube-proxy pod

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

测试ipvs模块是否开启成功

ipvsadm -Ln