注意:
1、需要内核4.1以上
2、--masquerade-all参数与calico的网络隔离策略有些冲突,需注意
3、kube-proxy 根据 --cluster-cidr 判断集群内部和外部流量,指定 --cluster-cidr 或 --masquerade-all 选项后 kube-proxy 才会对访问 Service IP 的请求做 SNAT;
- 1、准备环境
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
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/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 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vs # 有显示模块即表示成功
yum install ipvsadm ipset -y
- 2、修kube-proxy.conf配置
![cat /opt/kubernetes/cfg/kube-proxy.conf
KUBE_PROXY_OPTS="--bind-address=0.0.0.0 \
--hostname-override=k8s-node1 \
--feature-gates=SupportIPVSProxyMode=true \
--proxy-mode=ipvs \
--ipvs-min-sync-period=5s \
--ipvs-sync-period=5s \
--ipvs-scheduler=rr \
--kubeconfig=/opt/kubernetes/cfg/kube-proxy.kubeconfig \
--cluster-cidr=11.244.0.0/16"](https://img-blog.csdnimg.cn/20210319104936123.png)
- 3、重启kube-proxy,并验证
systemctl restart kube-proxy
认证
ipvsadm -Ln