5-1、ipvs

复制代码
ipvs
一、概念

ipvs (IP Virtual Server) 实现了传输层负载均衡,也就是我们常说的4层LAN交换,作为 Linux 内核的一部分。



ipvs运行在主机上,在真实服务器集群前充当负载均衡器。ipvs可以将基于TCP和UDP的服务请求转发到真实服务器上,并使真实服务器的服务在单个 IP 地址上显示为虚拟服务。



ipvs vs. iptables#



我们知道kube-proxy支持 iptables 和 ipvs 两种模式,



在kubernetes v1.8 中引入了 ipvs 模式,在 v1.9 中处于 beta 阶段,在 v1.11 中已经正式可用了。



iptables 模式在 v1.1 中就添加支持了,从 v1.2 版本开始 iptables 就是 kube-proxy 默认的操作模式,



ipvs 和 iptables 都是基于netfilter的,那么 ipvs 模式和 iptables 模式之间有哪些差异呢?



ipvs 为大型集群提供了更好的可扩展性和性能

ipvs 支持比 iptables 更复杂的负载均衡算法(最小负载、最少连接、加权等等)

ipvs 支持服务器健康检查和连接重试等功能



ipvs 依赖 iptables#



ipvs 会使用 iptables 进行包过滤、SNAT、masquared(伪装)。



具体来说,ipvs 将使用 ipset 来存储需要 DROP 或 masquared 的流量的源或目标地址,以确保 iptables 规则的数量是恒定的,这样我们就不需要关心我们有多少服务了

使用ipvs:
修改kubelet配置文件/etc/sysconfig/kubelet,追加内容:
KUBE_PROXY_MODE=ipvs
ip_vs,ip_vs_rr,ip_vs_wrr,ip_VS_sh,nf_conntrack_ipv4
修改kube-proxy 启动参数:
在每个worker节点上修改,kube-proxy启动参数
vi /etc/systemd/system/kube-proxy.service, 加上 --proxy-mode=ipvs \,然后执行下面命令

ClusterIP,NodePort:
    NodePortLclient ---> NodeIP:NodePort  ---> ClusterIP:ServicePort  --->PodIP:containerPort
    LoadBalancer:
    ExternelName:
        FQDN:CNAME --->FQDN
No ClusterIP:Headless Service
    ServiceName --->PodIP    

https://www.jianshu.com/p/89f126b241db
复制代码

 

posted @   Sky-wings  阅读(105)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示