k8s配置使用ipvs替代iptables做代理转发
- 2022-03-20 23:10:00
- 运维
- 627
- shevechco
从k8s的1.8版本开始,kube-proxy引入了IPVS模式,IPVS模式与iptables同样基于Netfilter,但是采用的hash表,因此当service数量达到一定规模时,hash查表的速度优势就会显现出来,从而提高service的服务性能。
1.k8s开启ipvs的方法
首先我们需要在内核中开启相关模块
cat >> /etc/sysctl.conf << EOF net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF sysctl -p
2.安装ipvs和相关依赖,并配置相关模块,使其生效
yum -y install ipvsadm ipset # 临时生效 modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack_ipv4 # 永久生效 cat > /etc/sysconfig/modules/ipvs.modules <<EOF 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
3.配置k8s默认使用ipvs做转发,需要修改configmap
kubectl -n kube-system edit cm kube-proxy #其中mode的地方修改为ipvs mode:"ipvs"
4.然后删除原来的kube-proxy 的pod
[root@k8s-master kubernetes]# kubectl delete pod -n kube-system kube-proxy-4gz9f pod "kube-proxy-4gz9f" deleted [root@k8s-master kubernetes]# kubectl delete pod -n kube-system kube-proxy-7x8mg pod "kube-proxy-7x8mg" deleted [root@k8s-master kubernetes]# kubectl delete pod -n kube-system kube-proxy-gl55j pod "kube-proxy-gl55j" deleted
5.测试方法,主要使用ipvsadm命令来验证
可以通过查看kube-proxy的日志
kubectl logs -f -n kube-system kube-proxy-tzq8n
打印出
看到“Using ipvs Proxier”就说明已经配置成功了,同时我们也可以使用ipvsadm -Ln命令来查看
ipvsadm -Ln
打印结果
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://www.sulao.cn/post/816
相关推荐
- k8s集群中mongdb、etcd、prometheus数据bash一键备份脚本
- k8s业务pod端口检测和日志采集bash脚本
- python获取k8s中使用物理卡pod列表脚本
- k8s基于clusterrole生成集群级别只读用户bash脚本
- k8s存储pv/pvc中的subPath的使用详解
- k8s容器退出码详细信息介绍
- k8s调度GPU节点并挂载GPU设备
- k8s使用nfs报错selfLink was empty, can't make reference
- centos7使用haproxy部署k8s高可用集群
- centos7部署k8s多master高可用集群(k8s+containerd+nginx+keepalived)