1.修改iptables 为ipvs 模式

 ipvs 采用的 hash 表,iptables 采用一条条的规则列表。集群数量越多 iptables 规则就越多,而 iptables 规则是从上到下匹配,所以效率就越是低下。因此当 service 数量达到一定规模时,hash 查表 的速度优势就会显现出来,从而提高 service 的服务性能,( ipvs模式内核需要4.19以上才稳定,低于 4.19建议选择iptables模式)

2. ipvs 代替iptables

2.1 所有节点安装配置 ipvsadm

yum install -y ipvsadm ipset sysstat conntrack libseccomp

所有节点配置 ipvs 模块(在内核 4.19版本的 nf_conntrack_ipv4 已经改为 nf_conntrack)

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
modprobe -- ip_tables
modprobe -- ip_set
modprobe -- xt_set
modprobe -- ipt_set
modprobe -- ipt_rpfilter
modprobe -- ipt_REJECT
modprobe -- ipip
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules
bash /etc/sysconfig/modules/ipvs.modules && lsmod |grep -e ip_vs -e nf_conntrack_ipv4
3.删除原来的kube-proxy

kubectl -n kube-system get pod -l k8s-app=kube-proxy | grep -v 'NAME' | awk '{print $1}' | xargs kubectl -n kube-system delete pod

4.修改 kube-proxy 模式为 "ipvs"
kubectl -n kube-system edit cm kube-proxy
mode: "ipvs"
5. 清除防火墙规则

iptables -t filter -F; iptables -t filter -X; iptables -t nat -F; iptables -t nat -X

6.修改完ipvs过5、6分钟验证 ipvsadm -ln

 

posted on 2022-11-10 15:13  MhaiM  阅读(524)  评论(0编辑  收藏  举报