▲ 点击上方"DevOps和k8s全栈技术"关注公众号

     ipvs采用的hash表,iptables采用一条条的规则列表。集群数量越多iptables规则就越多,而iptables规则是从上到下匹配,所以效率就越是低下。因此当service数量达到一定规模时,hash查表的速度优势就会显现出来,从而提高service的服务性能。

98e76b8210bbfe66544bff4a5ba99920.png

我的k8s测试集群有两个节点,xianchaomaster1和xianchaonode1

修改ipvs方法如下所示:

[root@xianchaomaster1 ~]#yum install -y ipset ipvsadm

[root@xianchaomaster1~]#cat << 'EOF' > /etc/sysconfig/modules/ipvs.modules

#!/bin/bash

ipvs_modules=(ip_vsip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_ship_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack_ipv4)

forkernel_module in ${ipvs_modules[*]}; do

/sbin/modinfo -Ffilename ${kernel_module} > /dev/null 2>&1

if [ $? -eq 0 ];then

/sbin/modprobe${kernel_module}

fi

done

EOF

[root@xianchaomaster1~]#chmod +x /etc/sysconfig/modules/ipvs.modules

[root@xianchaomaster1~]# /etc/sysconfig/modules/ipvs.modules

[root@xianchaomaster1~]# kubectl -n kube-system edit cm kube-proxy

......

mode:"ipvs"

......

[root@xianchaonode1~]# yum install -y ipset ipvsadm

[root@xianchaonode1~]#cat<< 'EOF' > /etc/sysconfig/modules/ipvs.modules

#!/bin/bash

ipvs_modules=(ip_vsip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_ship_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack_ipv4)

forkernel_module in ${ipvs_modules[*]}; do

/sbin/modinfo -Ffilename ${kernel_module} > /dev/null 2>&1

if [ $? -eq 0 ];then

/sbin/modprobe${kernel_module}

fi

done

EOF

[root@ xianchaonode1~]# chmod +x /etc/sysconfig/modules/ipvs.modules

[root@ xianchaonode1~]#/etc/sysconfig/modules/ipvs.modules

[root@xianchaomaster1~]# kubectl -n kube-system get pod -l k8s-app=kube-proxy | grep -v 'NAME' | awk'{print $1}' | xargs kubectl -n kube-system delete pod

[root@xianchaomaster1~]# iptables -t filter -F; iptables -t filter -X; iptables -t nat -F; iptables-t nat -X;

[root@ xianchaonode1~]#iptables -t filter -F; iptables -t filter -X; iptables -t nat -F; iptables -tnat -X;

修改ipvs模式之后过5-10分钟测试在k8s创建pod是否可以正常访问网络

[root@xianchaomaster1~]# kubectl run busybox --image busybox:1.28 --restart=Never --rm -it busybox-- sh

/ # pingwww.baidu.com

PING www.baidu.com(39.156.66.18): 56 data bytes

64 bytes from110.242.68.4: seq=0 ttl=127 time=37.319 ms

#通过上面可以看到能访问网络

/# exit

e7d9efd88bc165eca1b16a8800b332c4.png

[root@xianchaomaster1 ~]# kubectl run busybox --image busybox:1.28--restart=Never --rm -it busybox -- sh

/ # nslookupkubernetes.default.svc.cluster.local

Server:    10.96.0.10

Address 1:10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      kubernetes.default.svc.cluster.local

Address 1:10.96.0.1 kubernetes.default.svc.cluster.local

看到上面内容,说明k8s的dns解析正常

微信公众号

24171734a311be932c6f866a766d220b.png

作者微信:luckylucky421302

7bafec4512513c710f1fd440f0502249.png

精彩文章推荐

年底了,总结下这一年,收获满满

2022年底第一波福利!

基于Jenkins+git+harbor+Helm+k8s+Istio构建DevOps流水线

基于k8s+Prometheus+Alertmanager+Grafana构建企业监控告警系统

k8s七层代理Ingress-nginx基于cookie、请求头、权重实现灰度发布

如何优化k8s网络插件?

每周好课推荐

目前有以下几个畅销和高口碑课程,在平台所有课程中排在第一:

(1)热销课->《Docker+K8S+Istio+k8s故障排查+DevOps+Openstack+Openshift+Python+监控+日志收集+Rancher》课程折上折,现在双折扣---->点此立即学习>>https://edu.51cto.com/surl=vGfJG2

(2)福利课->Kubernetes管理员认证 (CKA)购课链接--->

课程地址:https://edu.51cto.com/course/28751.html

(3)安全课->Kubernetes安全专家认证

【零基础入门】K8S CKS认证考试培训 +k8s安全+k8s运维-->

购课链接--->https://edu.51cto.com/topic/5206.html

          点亮,服务器10年不宕机ae9e727fc665c7b64c16f5af786ca366.gifab90daaa8952686bf22ee1dbfe4abb19.gif

点击阅读 | 了解更多

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐