Service更改工作模式爲ipvs
轉載至:https://www.jianshu.com/p/d1ba8b910085
當我的集羣搭建完成之後,service使用的默認工作模式爲iptables,當我查看的時候,IPtables又不太方便查看,排版、內容看起來都比較複雜,所以我嘗試使用ipvs,更改Service現在工作模式
而且IPvS有以下好處:
- IPVS爲大型集羣提供了更好的可擴展性和性能。
- IPVS支持比iptables更復雜的負載平衡算法(最小負載,最少連接,位置,加權等)。
- IPVS支持服務器健康檢查和連接重試等。
kube-proxy開啓ipvs的前置條件
1. 安裝IPvS
# yum -y install ipvsadm ipvsset
ipvs需要加載一些內核模塊
- ip_vs
- ip_vs_rr
- ip_vs_wrr
- ip_vs_sh
- nf_conntrack_ipv4
2. 在各個節點執行以下腳本:
# 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 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
3. kube-proxy開啓ipvs並重啓kube-proxy
$ kubectl edit configmap -n kube-system
....
mode: "ipvs"
....
$ kubectl get pod -n kube-system | grep kube-proxy | awk '{system("kubectl delete pod "$1" -n kube-system")}'
4. 此時再像往常一樣創建Deployment、Pod、Service之後查看就有ipvs規則了。
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