Kmesh v1.0正式发布!7大特性提升网络流量管理效率和安全性
1.Kurator V0.6.0:实现应用全流程生命周期管理2.亿级月活游戏《迷你世界》全栈容器化实践分享3.华为云云原生专家入选全球顶级开源组织CNCF技术监督委员会4.基于Sermant的全链路灰度发布在汽车行业DMS系统的应用5.华为云云原生FinOps解决方案,释放云原生最大价值6.CCE云原生混部场景下的测试案例7.通过HPA+CronHPA组合应对业务复杂弹性伸缩场景8.Kmesh进入CNCF云原生全景图,实现网格治理sidecarless化9.云原生多云多集群Karmada|2024开源之夏8项课题邀您共创10.KubeEdge v1.17.0发布!数据处理能力与易用性全面提升11.Volcano社区新版本发布!7大功能全面增强队列能力与调度稳定性12.干货收藏!Calico的BGP RouteReflector策略实践13.破除软件开发困局,基于容器平台的DevOps转型实践14.跨越云端,华为云技术专家分享高效跨云迁移实践15.技术解读华为云CCE Autopilot,k8s集群托管免运维16.硬核解读KubeEdge基于大模型边云协同的机器人语义分割算法17.揭秘10亿+高并发应用如何实现高效稳定的开发和运维18.Karmada v1.10发布,新增多集群声明式负载重平衡19.华为云技术专家硬核分享,云原生中间件如何加速业务发展20.从零开始带你上手体验Sermant自定义插件开发21.以Java项目为例,实现Jenkins对接CCE Autopilot集群22.从安装到配置,教你用Argo CD对接CCE集群完成测试、生产部署23.ELB Ingress网关助力云原生应用轻松管理流量24.硬核案例分享,一文带你拆解PHP语言体系下的容器化改造25.华为云DTSE助力虎彩鲜檬优化运维效率,助力迁移上云26.一文教你在华为云上部署Discuz论坛网站27.蓝亚盒子迁移上云,华为云助力开启元宇宙直播电商新纪元28.华为云DTSE助力悦知技术架构升级、打破业务瓶颈29.革新技术架构,华为云DTSE助力紫藤科技迁移上云经验分享30.华为云Serverless可观测性解决方案打造高效、可靠的云原生应用31.从K8s的“临时容器”看K8s设计的厉害之处32.Volcano新版本发布:10大功能提升统一调度和细粒度资源管理能力33.华为云技术专家分享4大举措,助力开发者开启鸿蒙原生应用开发34.一图为你揭秘云数据库GaussDB管理平台亮点35.华为云架构师深度解读Volcano云原生混部解决方案36.资源利用率提高30%,揭秘华为云Serverless高效、高密度调度优化原理37.解读Karmada多云容器编排技术,加速分布式云原生应用升级38.流量治理架构对比:当Kmesh遇上Ambient Mesh39.Karmada v1.12 版本发布!单集群应用迁移可维护性增强
40.Kmesh v1.0正式发布!7大特性提升网络流量管理效率和安全性
41.Volcano v1.11发布,显著提升AI训练与推理任务的性能42.KubeEdge 1.20.0发布! 6大新特性提升边缘管理能力摘要:在本次发布的 v1.0 版本中,Kmesh 对东西向流量治理功能进行了重大改进,提升了整体网络流量管理的效率和安全性。
本文分享自华为云社区《Kmesh v1.0正式发布!稳定易用的高性能Sidecarless服务网格》,作者:云容器大未来。
2025 新年伊始,我们非常高兴地宣布Kmesh v1.0 版本[1]正式发布。在此,我们对 Kmesh 社区[2] 所有贡献者在过去三个月中的不懈努力和辛勤工作表示衷心的感谢。正是因为大家的共同努力,Kmesh 才能顺利推出这一重要版本。

在本次发布的 v1.0 版本中,Kmesh 对东西向流量治理功能进行了重大改进,提升了整体网络流量管理的效率和安全性。这些改进不仅优化了数据传输的稳定性,还为用户提供了更加丰富的流量治理能力。此外,我们还持续优化了 Kmesh 的易用性,使其更加友好和直观,方便用户快速上手和使用。
Kmesh v1.0 版本主要特性
加密通信
为保障节点间通信的安全,Kmesh 在v1.0版本引入了 IPsec 对节点间的流量进行加密,使流量传输过程中明文变密文,确保了节点间通讯的信息安全。整体架构图如下图所示:

IPSec 作为一种成熟、稳定且高度安全的加密协议,被广泛应用于各种网络环境。它不仅为节点间的通信提供加密,还支持对不同协议的数据进行加密。Kmesh 仅使用 IPSec 的加密功能,如上图所示,用户在 Kubernetes 中设置 IPsec 的预共享密钥之后,Kmesh 对这个密钥进行管理保证 IPsec 的正常通信。
此外为精细化控制 IPsec 的加密行为,Kmesh 通过 KmeshNodeInfo CRD 存储节点信息,借助 Kubernetes api-server 进行节点间的信息同步。确保集群节点间通讯的安全性。
借助 IPSec,Kmesh 不仅实现了节点间通信的加密功能,还确保了数据在传输过程中的机密性和完整性,从而有效防止数据被窃听、篡改或伪造。通过结合 Kubernetes 的灵活性和 CRD(自定义资源定义)的扩展能力,Kmesh 能够在复杂的集群环境中高效地管理加密密钥,并动态同步节点信息,进一步提升了整个系统的安全性和可靠性。
将 Authorization 策略执行下沉到 XDP 程序中
在 Kmesh v0.5.0 版本 中,Kmesh 已经将 authorization 的部分功能下沉到 XDP 程序中执行。在 v1.0.0 版本我们将更多的 authorization 能力下沉到 XDP 中,现已经支持基于IP的 authorization 处理。整体的处理流程图如下图所示:

Kmesh 将 authorization 的处理分成 policy、rule、clause 和 match 四步处理,将它们通过 tail-call 机制进行串联。整个 authorization 的处理会在 TCP 建链的的时候进行,如果通过鉴权,流量将通过协议栈发送到对应的 IP 地址;如果没通过鉴权,则会丢弃 SYN 包,阻止 TCP 链接建立。
通过将 authorization下沉到 XDP 程序中,Kmesh 能够在网络数据包进入内核协议栈的最早阶段进行鉴权处理。这种方式不仅显著减少了用户态与内核态之间的上下文切换开销,还能够极大提升数据包处理的效率,从而实现高速、低延迟的鉴权。同时,这种设计确保了未通过鉴权的数据包在协议栈中被直接丢弃,有效降低了系统资源的消耗,进一步增强了系统的安全性和性能。Kmesh 在之后的版本计划中,会将更多的 authorization 功能下沉到 XDP Prog 当中,欢迎大家对相关的 authorization 提出自己的需求,以便社区制定迭代计划。
基于地域的负载均衡
在v1.0.0版本,Kmesh具备了基于地域的负载均衡能力。基于地域的负载均衡是分布式系统中性能和可靠性的关键优化。通过将流量路由到地域优先级最高的服务实例,减少延迟,增加可用性。Kmesh 的基于地域的负载均衡的匹配示例如下所示:

图中的1、2、3、4表示 client 访问 service 的优先级。当访问服务时,会先根据 sub-zone,zone,region 的匹配程度先计算优先级,再确定访问哪个服务。通过在用户态存储的基于地域的优先级信息更新 service map 中的信息。bpf 程序根据 service map 中的优先级信息选择对应的 endpoint 建立链接。此外 Kmesh 在负载均衡策略更新期间会对 endpoint map 中的 endpoint_key 逐一进行更新,以确保更新期间服务的连续性。Kmesh 现提供 region、zone、subZone、nodeName 和 clusterID 五种不同粒度的地域负载均衡。使用户能够灵活的配置适合自己的负载均衡策略。
在有基于地域的负载均衡能力之后,Kmesh 能够更智能地将流量引导至地理位置最优的节点,从而减少延迟并提高服务性能。这样一来,用户请求可以更快速地得到响应,尤其对于跨地域的大型分布式应用来说,能够显著提升整体用户体验和网络性能。
可观测性优化
为提升 Kmesh 的易用性,在 v1.0 版本中对 Kmesh 的可观测性也进行了贴近用户需求的优化。
在 Metrics 中,Kmesh 优化了 metrics labels,将 destination_service 从原本的 socket 中的 destination 替换成本次请求最终的 destination 。原先经过 waypoint 的 source 访问 destination 的请求会分成 source->waypoint 和 waypoint->destination 两条 metrics 。使 destination 的信息都呈现为 waypoint 的信息。
before release v1.0 # destination_service_name is `reviews` instead of `reviews-svc-waypoint kmesh_tcp_connections_closed_total{destination_app="reviews-svc-waypoint",destination_service="reviews-svc-waypoint"...} 14
当有多个服务共用一个waypoint的时候,这样的metrics会使用户感到困惑。但在v1.0.0版本中,Kmesh metrics的destination_service将始终记录最终destination信息。呈现的metrics为:
release v1.0 # destination_service_name is `reviews` instead of `reviews-svc-waypoint` kmesh_tcp_connections_closed_total{destination_app="reviews-svc-waypoint",destination_service_name="reviews"...} 14
这样修改,一条 metrics 就能够包含本次链接的 destination 信息和最终 destination 信息。使呈现的 metrics 更加合理易懂,提升了 Kmesh 可观测数据的整体清晰度和可用性。此外 Kmesh 还与 kiali 一起,为用户呈现清晰直观的服务拓扑图:

借助服务拓扑图,用户能够全面了解集群中各个服务之间的依赖关系和通信状态,从而更容易地监控和诊断网络状况。用户还可以识别潜在的性能瓶颈和故障点,进行优化和故障排除,提高整个系统的可靠性和性能。
全模式无中断重启
在 v1.0.0 版本, Kmesh 的 Kernel-Native 模式也提供了流量重启无中断的能力。可以在重启后优雅的加载 eBPF map 和 Prog,且不需要再重启后重新注册服务。实现了Kmesh全模式下重启不中断流量,不影响服务的目标。

与 Dual-Engine 模式一样,通过将 eBPF Prog 和 map pin 到内核目录中,使其与 kmesh-daemon 解耦,确保 eBPF map 和 Prog 在 Kmesh 关闭的时候也能够对流量进行治理。确保在 Kmesh 重启的这段时间中服务不中断。
如果在 Kmesh 重启的这段时间中有配置的更新,Kmesh 在重启之后,也会从 istiod 中获取最新的配置,确保在重启后的第一时间进行信息的同步。
相较于传统 Service Mesh 在重启过程中中断服务流量的情况,Kmesh 的设计避免了在重启期间对业务流量产生影响,确保了服务的连续性和稳定性,提供了更可靠高可用的系统,减少了服务中断的风险,提升了用户体验。此外在后续计划中,Kmesh 会支持无中断升级,确保在 Kmesh 升级的时候也能不干扰业务流量,解决困扰用户想使用网格新的功能又不敢升级网格的问题。
熔断与限流
注意:此特性仅适用于[Kernel-Native Mode]
Kmesh 在 v1.0.0 版本为 Kernel-Native 模式引入熔断和限流功能。在 Kernel-Native 模式保证低延迟高并发高负载的情况下,确保系统的稳定性和可靠性。Kmesh 的 Kernel-Native 模式追求极致的性能,但此前的功能较少,后续我们会在确保 Kernel-Native 模式性能的情况下,提供更为丰富的功能。
支持Headless Service和ServiceEntry和适配istio 1.24
Kmesh v1.0.0 中已经适配了Istio 1.24 版本,并且通过 e2e 测试保证了 Kmesh在 Istio 1.24 版本中的稳定性。目前在 Kmesh 社区中通过 e2e 测试,确保 Kmesh 在 Istio 1.22, 1.23, 1.24 版本的稳定性。此外我们还与 Istio 1.24 版本的 Ambient Mesh进行了性能方面的对比(当Kmesh遇上Ambient Mesh[3])总体来说。Kmesh 在时延和吞吐量两个维度上来说,相较于Ambient Mesh更胜一筹。
除了适配最新的 Istio 之外,Kmesh还支持了 Headless Service 和 ServiceEntry 的部分能力。
致谢
我们衷心感谢 Kmesh[4] 社区的所有贡献者,Kmesh v1.0.0 的成功发布是整个团队集体努力的证明。这不仅包括通过 OSPP 参与社区开发的学生,还包括来自华为、阿里、Tetrate 等公司的其他所有热心的开源开发者们。正是大家的共同努力,促使 Kmesh 社区蓬勃发展、欣欣向荣。
我们也热烈欢迎新的开发者和用户加入 Kmesh 社区。只有在大家的持续参与和支持下,我们才能不断创新和进步,共同推动 Kmesh 走向更加辉煌的未来。通过协作与分享,我们期待在 Kmesh 社区中实现更多技术突破和应用场景,为大家提供更加优秀的 Sidecarless 服务网格解决方案。
参考资料
[1]Kmesh v1.0 版本: https://github.com/kmesh-net/kmesh/releases/tag/v1.0.0
[2]Kmesh GitHub: https://github.com/kmesh-net/kmesh
[3]当Kmesh遇上Ambient Mesh: https://bbs.huaweicloud.com/blogs/442565
[4]Kmesh Website: https://kmesh.net/en/
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2024-01-23 OpenKruise :Kubernetes背后的托底
2024-01-23 Prometheus最佳实践 Summary和Histogram
2024-01-23 解析Java Chassis 3中应用视角的配置管理