kube-proxy 切换为ipvs模式

前言

环境:centos7.9 k8s版本v1.22.12 kube-admin安装的k8s
我们知道kube-proxy有两种模式,iptables和ipvs两种模式,ipvs是性能最好的。

官网文档

官方讲了kube-proxy的两种模式,iptable和ipvs,非常值得看:
https://kubernetes.io/zh-cn/docs/reference/networking/virtual-ips/#proxy-mode-nftables

kube-proxy ipvs和iptables的异同

相同点:ipvs和iptables都是通过netfitle内核进行转发。
异同点:iptables只是为防火墙设计的,IPtable只是防火墙,而ipvs是专门用于高性能负载均衡的,并使用更高效的数据结构,如hash表并支持索引。
ipvs与iptables相比较,其优势为:

(1)ipvs为大型集群提供了更好的可扩展性和性能
(2)ipvs支持比iptables更复杂的负载均衡算法,如rr、wrr、lc、wlc
(3)ipvs支持服务健康检查和链接重试等功能
(4)ipvs可以动态修改ipset集合

目前大多数的k8s版本的kube-proxy都是默认使用iptables模式,为什么呢,因为无奈,因为主要是用户安装的Linux操作系统和k8s集群,没
有办法让用户强制安装ipvs,ipvs需要安装对应的模块。正是因为ipvs的高效性能,所以,将kube-proxy的模式切换为ipvs是很有必要的。

查看kube-proxy使用的模式

#先查看有几个kube-proxy
kubectl get pods -n kube-system -o wide| grep proxy
#查看现在的kube-proxy使用什么模式, 应该可以看到using iptables Proxier 这样的字眼就是iptables模式
kubectl logs kube-proxy-b5rt4 -n kube-system 
#这样也能查看现在的kube-proxy使用什么模式
kubectl exec -it kube-proxy-b5rt4 -n kube-system -- curl 127.0.0.1:10249/proxyMode

kube-proxy 切换为ipvs模式

#在所有master、node节点上执行下面的脚本启动ipvs模块
touch /etc/sysconfig/modules/ipvs.modules
cat <<EOF >/etc/sysconfig/modules/ipvs.modules
#!/bin/bash
ipvs_modules_dir="/usr/lib/modules/`uname -r`/kernel/net/netfilter/ipvs"
for i in \`ls \$ipvs_modules_dir | sed -r 's#(.*).ko.xz#\1#'\`; do
      /sbin/modinfo -F filename \$i &> /dev/null
      if [ \$? -eq 0 ]; then
          /sbin/modprobe \$i
       fi
done
EOF

#再次查看一下ipvs.modules文件,反引号的都替换了
[root@master ~]# cat /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
ipvs_modules_dir="/usr/lib/modules/3.10.0-1160.71.1.el7.x86_64/kernel/net/netfilter/ipvs"
for i in `ls $ipvs_modules_dir | sed -r 's#(.*).ko.xz#\1#'`; do
      /sbin/modinfo -F filename $i &> /dev/null
      if [ $? -eq 0 ]; then
          /sbin/modprobe $i
       fi
done
[root@master ~]#
#给脚本授权
chmod +x /etc/sysconfig/modules/ipvs.modules;
#开始执行脚本来载入ipvs的模块
bash /etc/sysconfig/modules/ipvs.modules;
#查看模块是否已经载入成功,发现已经载入ipvs模块,ipvs有很多算法,如:rr、wrr、lc、nq、wlc等等
lsmo
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值