Kubernetes service 代理模式
底层流量转发与负载均衡实现:
• Iptables(默认)
• IPVS
IPVS
了解代理模式之IPVS工作原理
LVS 基于 IPVS内核调度模块实现的负载均衡。
# 查看路由对应关系 , 需要先下载ipvsadm工具
ipvsadm -ln
注:内核态处理。
IPVS:
• 工作在内核态,有更好的性能
• 调度算法丰富:rr,wrr,lc,wlc,ip hash..
安装:yum -y install ipvsadm
开启使用IPVS模式
1、Node:启用IPVS模式,修改配置文件
KUBE_PROXY_OPTS="--logtostderr=true \
--v=4 \
--hostname-override=192.168.1.110 \
--cluster-cidr=10.0.0.0/24 \
--proxy-mode=ipvs \
--masquerade-all=true \
# 指定默认调度算法
--ipvs-scheduler=wrr \
--kubeconfig=/opt/kubernetes/cfg/kube-proxy.kubeconfig"
vim /opt/kubernetes/cfg/kube-proxy
2、重启kube-proxy
systemctl restart kube-proxy
IPtables
iptables实现是通过linux内核,实现linux内核级防火墙。
查看所有规则:iptables-save more
原理:通过iptables为访问来源创建许多规则,所有规则从上到下进行匹配。
问题:
1、创建很多iptables规则(更新,非增量式)
2、iptables规则从上到下逐条匹配(延时大)
3、用户态处理
Iptables:
• 灵活,功能强大(可以在数据包不同阶段对包进行操作)
• 规则遍历匹配和更新,呈线性时延