kube-proxy更换工作模式
kube-proxy更换工作模式
前言
iptables模式问题不好定位,规则多了性能会显著下降,甚至会出现规则丢失的情况;相比而言,ipvs就稳定的多。
流程
1.加载内核模快
#查看内核模块是否加载
lsmod|grep ip_vs
#如果没有执行下条命令
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
2.更改kube-proxy配置
kubectl edit configmap kube-proxy -n kube-system
- 找到“mode”关键字
minSyncPeriod: 0s
scheduler: "" # scheduler默认是空,默认负载均衡算法为轮训
syncPeriod: 30s
kind: KubeProxyConfiguration
metricsBindAddress: 127.0.0.1:10249
mode: "ipvs" # 默认为空就使用了iptables,现在换成ipvs
nodePortAddresses: null
#编辑完,保存退出(退出跟vim一样)
3.删除所有kube-proxy的pod
#一个一个删除 不推荐直接全部删除,删除他会重启新的POD哦
[root@master01 ~]# kubectl delete pod -n kube-system kube-proxy-2t7bm
pod "kube-proxy-2t7bm" deleted
[root@master01 ~]# kubectl delete pod -n kube-system kube-proxy-45l2c
pod "kube-proxy-45l2c" deleted
[root@master01 ~]# kubectl delete pod -n kube-system kube-proxy-f2cnv
pod "kube-proxy-f2cnv" deleted
[root@master01 ~]# kubectl delete pod -n kube-system kube-proxy-wr7sl
pod "kube-proxy-wr7sl" deleted
4.查看kube-proxy的pod日志
kubectl logs kube-proxy-xxx -n kube-system
- 看到这里即可
5.安装ipvsadm
使用ipvsadm查看ipvs相关规则,如果没有这个命令可以直接yum安装
yum install -y ipvsadm