kube-proxy的ipvs模式(lvs模式)

kube-proxy k8s的每个节点中都有一个叫做kube-proxy的进程,这个进程负责感知service,pod的变化,并将变化的信息写入本地的ipvs规则中。kube-proxy负责service实现了一种Vip(虚拟ip)的形式。
#基础kubeadm修改方法(控制节点node节点都要下载)
yum install conntrack-tools -y
yum install ipvsadm.x86_64 -y

控制节点:
#加载lvs内核模块
cat > /etc/sysconfig/modules/ipvs.modules <<
EOFmodprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
kubectl edit cm -n kube-system kube-proxy
将   mode: ""
修改为mode: "ipvs"
#删除旧的kube-proxy的pod
kubectl get pod -n kube-system |grep proxy
kubectl delete pod -n kube-system kube-proxy-6v4dx
kubectl delete pod -n kube-system kube-proxy-74ccl

#验证
[root@kubernetes-master ~]# kubectl logs -n kube-system kube-proxy-69sr8 
I0507 03:30:44.059764       1 server_others.go:170] Using ipvs Proxier.
W0507 03:30:44.060053       1 proxier.go:401] IPVS scheduler not specified, use rr by default
I0507 03:30:44.061522       1 server.go:534] Version: v1.15.5

[root@kubernetes-master ~]# ipvsadm -l -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.17.0.1:30008 rr
  -> 10.244.1.34:8080             Masq    1      0          0         
TCP  10.0.0.11:30000 rr
  -> 10.244.0.3:8443              Masq    1      0          0         
TCP  10.0.0.11:30008 rr
  -> 10.244.1.34:8080             Masq    1      0          0