1、查看当前kube-proxy的工作模式
kube-proxy默认的工作模式为iptables
[root@k8s-master ~]# kubectl get pod -A |grep proxy
kube-system kube-proxy-77vqw 1/1 Running 1 (3h59m ago) 24h
kube-system kube-proxy-cmnxt 1/1 Running 1 (18m ago) 24h
kube-system kube-proxy-ksrmj 1/1 Running 0 24h
[root@k8s-master ~]# kubectl -n kube-system logs -f kube-proxy-77vqw
I0102 05:18:58.112973 1 server_others.go:69] "Using iptables proxy"
I0102 05:18:58.129597 1 node.go:141] Successfully retrieved node IP: 10.0.0.105
I0102 05:18:58.131064 1 conntrack.go:52] "Setting nf_conntrack_max" nfConntrackMax=131072
I0102 05:18:58.131134 1 conntrack.go:100] "Set sysctl" entry="net/netfilter/nf_conntrack_tcp_timeout_close_wait" value=3600
I0102 05:19:01.002082 1 server.go:632] "kube-proxy running in dual-stack mode" primary ipFamily="IPv4"
I0102 05:19:01.004304 1 server_others.go:152] "Using iptables Proxier"
2、修改默认的工作模式
[ ]
mode默认是"",填写为"ipvs"
3、安装ipvs相关模块
# 安装依赖包
yum install -y conntrack ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git
cat > /etc/sysconfig/modules/ipvs.modules
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
# 执行脚本
sh /etc/sysconfig/modules/ipvs.modules
# 验证ipvs模块
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
4、重启kube-proxy
使用delete重启,删除旧的pod会生成相同数量新的pod
[ ]
pod "kube-proxy-77vqw" deleted
pod "kube-proxy-cmnxt" deleted
pod "kube-proxy-ksrmj" deleted
5、验证测试
[root@k8s-master ~]# kubectl get pod -A |grep proxy
kube-system kube-proxy-gkmfs 1/1 Running 0 29s
kube-system kube-proxy-j5s2n 1/1 Running 0 44s
kube-system kube-proxy-n8lwq 1/1 Running 0 44s
kubectl logs -f kube-proxy-gkmfs -n kube-system
I0102 09:23:51.734659 1 node.go:141] Successfully retrieved node IP: 10.0.0.106
I0102 09:23:51.736222 1 conntrack.go:52] "Setting nf_conntrack_max" nfConntrackMax=131072
I0102 09:23:52.055035 1 server.go:632] "kube-proxy running in dual-stack mode" primary ipFamily="IPv4"
I0102 09:23:52.233247 1 server_others.go:218] "Using ipvs Proxier"
查看kube-proxy的日志后可见,已经将kube-proxy的工作模式从iptables更换为ipvs。