kubernetes--kube-proxy组件深入理解

文章目录

    • kube-proxy的工作原理
    • netfilter的运行机制
    • ipvs和iptables有什么区别?
      • iptables在网络栈的hook点更多,而ipvs的hook点很少
        • iptables的hook点
        • ipvs的hook点
      • ipvs 的clusterIP 能ping通,而mode为iptables不行
    • 如何切换?
      • ipvs安装
    • 为何推荐ipvs?
    • 为什么iptables或者ipvs在每个节点上都是全量呢?

kube-proxy的工作原理

每台机器上都运行一个kube-proxy服务’它监听API server中service和endpoint的变化情 况,并通过iptables等来为服务配置负载均衡(仅支持TCP和UDP)
kube-proxy可以直接运行在物理机上,也可以以static pod或者DaemonSet的方式运行。 kube-proxy当前支持一下几种实现
•userspace:最早的负载均衡方案,它在用户空间监听一个端口,所有服务通过iptables 转发到这个端口,然后在其内部负载均衡到实际的Pod。该方式最主要的问题是效率低, 有明显的性能瓶颈。

•iptables:目前推荐的方案,完全以iptables规则的方式来实现service负载均衡。该方式 最主要的问题是在服务多的时候产生太多的iptables规则,非增量式更新会引入一定的时 延,大规模情况下有明显的性能问题
•ipvs:为解决iptables模式的性能问题,vl.8新增了ipvs模式,采用增量式更新,并可以 保证service更新期间连接保持不断开
•winuserspace:同userspace,但仅工作在windows上
在这里插入图片描述

netfilter的运行机制

在这里插入图片描述

ipvs和iptables有什么区别?

iptables是Linux操作系统中的一种防火墙技术,它能够通过配置规则来控制网络流量,从而保护网络安全。iptables能够支持多种网络负载均衡算法,但它并不能实现高性能的负载均衡,适用于对性能要求较低的场景。
ipvs是Linux操作系统中的一种内核级别的负载均衡技术,它能够在内核中实现负载均衡,从而提高网络服务的性能和可用性。ipvs能够支持多种负载均衡算法,并且具有高性能、高可用性和高可扩展性的特点。适用于对性能要求较高的场景。
总的来说,iptables更适用于控制网络流量和保护网络安全,而ipvs更适用于提高网络服务的性能和可用性。它们在功能上有所不同,但也可以结合使用,以实现更加完善的网络负载均衡。
from chatGPT

iptables在网络栈的hook点更多,而ipvs的hook点很少

我的理解: k8s为何要使用iptables? 主要是做负载均衡的,而iptables的链路较长hook较多。当iptables规则较多时会有性能问题,因此ipvs横空出世,解决了iptables的性能问题还基于netfilter对svc进行负载。

k8s的svc的雄心是做一个开箱即用的分布式负载均衡,而不像springcloud针对java做的哪一套.

iptables的hook点

在这里插入图片描述

ipvs的hook点

在这里插入图片描述
IPVS支持的锚点和核心函数
在这里插入图片描述

ipvs 的clusterIP 能ping通,而mode为iptables不行

ipvs mode会虚拟一个kube-ipvs0的设备,集群内所有的clusterIP svc都会绑定在这个设备上。因此可以ping.
iptables mode则不会对clusterip 绑定任何设备,所以无法ping通.
在这里插入图片描述

如何切换?

kube-proxy 的实现方式可以是ipvs或者iptables.
mode字段进行切换,如果使用ipvs需要加载相应的内核模块.

#] more /etc/kubernetes/kube-proxy.yaml
apiVersion: kubeproxy.config.k8s.io/v1alpha1
bindAddress: 10.50.10.31
clientConnection:kubeconfig: /etc/kubernetes/kube-proxy.kubeconfig
clusterCIDR: 10.244.0.0/16
healthzBindAddress: 10.50.10.31:10256
kind: KubeProxyConfiguration
metricsBindAddress: 10.50.10.31:10249
mode: "ipvs"

ipvs安装

如果模块未安装kube-proxy会自动回退到iptables

# 1.安装ipset和ipvsadm
[root@master ~]# yum install ipset ipvsadmin -y
# 2.添加需要加载的模块写入脚本文件
[root@master ~]# cat <<EOF> /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
# 3.为脚本添加执行权限
[root@master ~]# chmod +x /etc/sysconfig/modules/ipvs.modules
# 4.执行脚本文件
[root@master ~]# /bin/bash /etc/sysconfig/modules/ipvs.modules
# 5.查看对应的模块是否加载成功
[root@master ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv4

为何推荐ipvs?

iptables模式 如果有1000个pod,首个包过来以千分一的概率撞到,因此首包的延迟较高。另外一个原因是iptables是不做增量处理,每次都做全量改变,当iptables很大的时候会很慢.
而ipvs 进行了分层. 只会在iptables中增加一条iptables 规则 KUBE-NODE-PORT-TCP ,ipset 会把相同的规则(ip + 端口)放在ipset这简化了iptables。

-A KUBE-MARK-DROP -j MARK --set-xmark 0x8000/0x8000
-A KUBE-MARK-MASQ -j MARK --set-xmark 0x4000/0x4000
-A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" -m mark --mark 0x4000/0x4000 -j MASQUERADE -A KUBE-SEP-55QZ6T7MF3AHPOOB -s 10.244.1.6/32 -m comment --comment "default/http:" -j KUBE-MARK-MASQ -A KUBE-SEP-55QZ6T7MF3AHPOOB -p tcp -m comment --comment "default/http:" -m tcp -j DNAT --to-destination 10.244.1.6:80 -A KUBE-SEP-KJZJRL2KRWMXNR3J -s 10.244.1.5/32 -m comment --comment "default/http:" -j KUBE-MARK-MASQ -A KUBE-SEP-KJZJRL2KRWMXNR3J -p tcp -m comment --comment "default/http:" -m tcp -j DNAT --to-destination 10.244.1.5:80 -A KUBE-SERVICES -d 10.101.85.234/32 -p tcp -m comment --comment "default/http: cluster IP" -m tcp --dport 80 -j KUBE-SVC-7IMAZDGB2ONQNK4Z
-A KUBE-SVC-7IMAZDGB2ONQNK4Z -m comment --comment "default/http:" -m statistic --mode random -probability 0.50000000000 -j KUBE-SEP-KJZJRL2KRWMXNR3J
-A KUBE-SVC-7IMAZDGB2ONQNK4Z -m comment --comment "default/http:" -j KUBE-SEP-55QZ6T7MF3AHPOOB

•iptables: 完全以iptables规则的方式来实现service负载均衡。该方式 最主要的问题是在服务多的时候产生太多的iptables规则,非增量式更新会引入一定的时 延,大规模情况下有明显的性能问题
•ipvs:为解决iptables模式的性能问题,vl.8新增了ipvs模式,采用增量式更新并可以 保证service更新期间连接保持不断开

为什么iptables或者ipvs在每个节点上都是全量呢?

执行如下命令你会发现在所有节点上都会这个clusterip 10.96.70.31 的ipvs规则。这是为何呢?

ansible k8s-all -m shell -a 'ipvsadm -l -n | grep -C 5 '10.96.70.31''

想一下之前那种集中式的负载均衡,所有流量过来都要经过那台负载均衡,而k8s直接将负载均衡做到了每一个节点上,这和svc的设计结合起来就是一个分布式的负载均衡.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/61527.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

马斯克收购 Twitter:把你们的代码都打印出来!

转自&#xff1a;量子位 | 公众号 QbitAI 来&#xff0c;将付费服务涨价3倍&#xff0c;一周干不好就卷铺盖走人&#xff01; 没想到&#xff0c;马斯克对推特员工下的第一个“最后通牒”&#xff0c;竟来得这么快。 既压榨了员工&#xff0c;又是在为公司谋利&#xff0c;这一…

微软被曝窃取Twitter数据?马斯克用律师信回应

整理 | 朱珂欣 出品 | CSDN程序人生&#xff08;ID&#xff1a;coder_life&#xff09; 马斯克和微软之间&#xff0c;似乎就是一场明里暗里的“较量”。 上个月&#xff0c;微软宣布将停止在其智能广告平台上支持 Twitter。随后&#xff0c;埃隆马斯克表示将对微软提起“诉…

Chat GPT回答特定领域的问题?

点击↑上方↑蓝色“编了个程”关注我~ 这是Yasin的第 1 篇原创文章 Chat GPT的优势 Chat GPT基本上是最近科技圈最火的话题了&#xff0c;甚至给圈外的人也造成了不小的震动。Chat GPT的成功带火了其它领域的AI产品&#xff0c;如&#xff1a;AI绘画、AI语音、AI生成视频等。 C…

gpt 自己实现搭建

如果觉得官方免费的gpt&#xff08;3.5&#xff09;体验比较差&#xff0c;总是断开&#xff0c;或者不会fanqiang&#xff0c;那你可以自己搭建一个。但前提是你得有gpt apikey。年初注册的还有18美金的额度&#xff0c;4.1号后注册的就没有额度了。不过也可以自己充值。 有了…

大模型时代,程序员的技能演进——盘点那些更重要的、和不再重要的能力

点击上方蓝字关注获取更多资讯 Part.1 “程序员”的工作&#xff0c;还是不是“写程序”&#xff1f; 曾经&#xff0c;“程序员”的职责是非常明确的&#xff1a;编写和调试代码&#xff0c;让应用程序正常工作。在这个意义上&#xff0c;胜任“程序员”的工作其实并不是太难&…

独家对话黄仁勋:关于生成式AI、算力能耗的一些追问

来源&#xff1a;与非网eefocus 作者&#xff1a;张慧娟 随着ChatGPT的爆火&#xff0c;黄仁勋最近频频强调&#xff1a;“我们正处于AI的iPhone时刻”。GTC上&#xff0c;他对媒体详解了这一观点的由来&#xff0c;在他看来——一个新的计算平台已经开发出来了。 过去大约每15…

被“误解”的游戏开发者

如果让我站在自己的角度用一句话概括这个游戏开发这个专业&#xff0c;我必须要说&#xff1a;游戏开发是个“坑”&#xff0c;而且是个“天坑”。 作者 | 开发游戏的老王 责编 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 各位游戏开发者大家好…

情系儿童,暖席番禺——绿日同学公益组织青少年开展同辈关怀活动

“谢谢你&#xff08;们&#xff09;来了&#xff01;” 近日&#xff0c;训练营学员来到了洛浦街南浦西一村小s&#xff08;化名&#xff09;家&#xff0c;并将“东风快递”送到了小s手上。小s迫不及待的打开礼物并与“妈妈”分享着收到礼物后的快乐。 小s开心地与当“妈妈”…

第一次参加幼儿园家长开放日活动

今天&#xff0c;第一次参加孩子在幼儿园的家长开放日活动&#xff0c;能有这样一个机会近距离感受孩子在幼儿园生活情况&#xff0c;观看孩子在幼儿园生活的点点滴滴。 作为家长的我心情无比激动&#xff0c;昨晚竟然激动到睡不到觉&#xff0c;然后今天一大早就起床准备。 在…

白下高新区妇联、科协举办亲子活动,小朋友们走进云创大数据

为了让白下高新区员工及子女感受到高新区妇联的关怀&#xff0c;从而进一步增强对企业的认同感和归属感&#xff0c;营造和谐幸福的企业文化氛围&#xff0c;也为孩子们的茁长成长撑起一片天&#xff0c;7月31日&#xff0c;高新区妇联、科协联合钟晓敏爱心工作室举办了亲子活动…

GP官网上的TEE学习课程和费用介绍

★★★ 个人博客导读首页—点击此处 ★★★ 在optee的官网上&#xff0c;我们可以看到有TEE/SE等相关的培训课程&#xff0c;竟然要好几十万… 我们交不起学费&#xff0c;但我们可以参照其课程目录进行学习&#xff01;&#xff01;&#xff01; TEE Technical Specification…

送给孩子的趣味通信课

谨以此文&#xff0c;送给天下所有的孩子 也送给我的女儿&#xff08;她今天过生日&#xff09; 也希望这篇PPT&#xff0c;能够帮到所有当父母的通信人 祝你们永远快乐&#xff01; 作者&#xff1a;小枣君、姚士鸵 注&#xff1a;图片全部来自网络&#xff0c;侵权请联系删除…

Campus Talking 小记(6)

Let us to make our app 在前一段时间中&#xff0c;我有几场面试&#xff0c;所以耽误了一段时间&#xff0c;所以现在与个各位见面&#xff0c;今天本来是去进行底部导航栏第二部分的一个编写&#xff0c;也就是一个视频模块的编写&#xff0c;但是由于一些问题没有解决&…

情系儿童 暖席广州

导语&#xff1a;新修订的《中华人民共和国未成年人保护法》于2021年6月1日正式实施&#xff0c;为全面贯彻新未成年人保护法&#xff08;简称&#xff1a;未保法&#xff09;的宣传工作&#xff0c;广泛凝聚保护未成年人合法权益的社会共识&#xff0c;推动未保工作的深入开展…

c语言幼儿园积木游戏,干货来袭!超详细幼儿园游戏活动教案

原标题&#xff1a;干货来袭&#xff01;超详细幼儿园游戏活动教案 育儿 干货 幼儿园游戏详细教案 运乒乓球 1 游戏目的 练习推爬、持物走&#xff0c;提高身体的协调性和平衡能力。 游戏准备 1、自制车轮箱&#xff0c;奶箱&#xff0c;易拉罐梅花桩&#xff0c;乒乓球&#x…

定向寻宝亲子活动设计思路和实操(附2019最新教程)

亲子定向为什么一直深受家长和孩子的喜爱&#xff1f;总结有以下3点 1.寓教于乐&#xff0c;锻炼幼儿能力 作为而儿童运动的一种&#xff0c;定向寻宝具有智力和体力并重的特点。孩子可以在与大自然的接触中&#xff0c;分享活动乐趣、体会亲子温情&#xff0c;同时提升运动和…

Campus Talking 小记(2)

Let us to make our app 根据昨天的进度&#xff0c;我们已经制作了我们的启动页面&#xff0c;有一个启动页面是不是很有正规app的那个味儿&#xff0c;哈哈哈哈&#xff0c;反正我是这么想的。在做了一个启动页面之后&#xff0c;我们来到了登陆页面。&#xff08;我的项目编…

真人CS、趣味拓展、空中断桥、越野车、露营 2天亲子活动方案

真人CS、趣味拓展、空中断桥、越野车、露营 2天亲子活动方案 时间安排 项目安排 第一天 08:00-09:30 集合&#xff0c;清点人数&#xff0c;乘车前往指定拓展基地 09:30-12:00 团队熔炼&#xff1a;破冰分组、团队建设、团队展示 挑战项目&#xff1a;亲子CS 12:00-13…

面对疫情 你可以这样面对—番禺区青少年儿童综合能力训练营开营

近段时间&#xff0c;新冠疫情在全国多点出现&#xff0c;部分青少年因此出现情绪困扰&#xff0c;日前&#xff0c;由区民政局指导、区慈善会主办、区社联会承办的区第七届公益慈善创投资助项目——“牵手成长”番禺区青少年儿童综合能力提升训练营&#xff08;下文简称“训练…

关注流动儿童心理健康,这场亲子营游学活动很“有爱”

近日&#xff0c;由广州市组织管理局、中共广州市社会组织委员会、广州市社会组织联合会指导&#xff0c;广州市福彩公益金资助&#xff0c;广州市为本社会心理慈善服务中心承办&#xff0c;第八届广州市社会组织公益创投“爱无限心关爱”助力健康中国共筑成长路——流动儿童心…