杨梅冲
每天在想什么呢?

环境:https://www.cnblogs.com/yangmeichong/p/16477200.html

一、修改 iptables 变成 ipvs 模式

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

1.1 使用ipvs代替iptables

步骤:
1.在master、pod1、pod2上安装:yum install -y ipset ipvsadm

2.在3台服务器上添加ipvs脚本
cat << 'EOF' > /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
ipvs_modules=(ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr_ip_vs_lblc ip_vs_lblcr ip_vs_dh 
ip_vs_sh ip_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack_ipv4)
for kernel_module in ${ipvs_modules[*]}; do
/sbin/modinfo -F filename ${kernel_module} > /dev/null 2>&1
if [ $? -eq 0 ]; then
/sbin/modprobe ${kernel_module}
fi
done
EOF

chmod +x /etc/sysconfig/modules/ipvs.modules

/etc/sysconfig/modules/ipvs.modules

3. 将master上原来的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.master修改模式
 kubectl -n kube-system edit cm kube-proxy
...........
mode:'ipvs'
...........

5.处理防火墙,master和pod上运行
iptables -t filter -F; iptables -t filter -X; iptables -t nat -F; 
iptables -t nat -X;

修改 ipvs 模式之后过 5-10 分钟测试在 k8s 创建 pod 是否可以正常访问网络
kubectl run busybox --image busybox:1.28 --
restart=Never --rm -it busybox -- sh
/# ping baidu.com
测试DNS是否正常
/#nslookup kubernetes.default.svc.cluster.local

 

posted on 2022-08-05 12:21  杨梅冲  阅读(876)  评论(0编辑  收藏  举报