首页 > 其他分享 >Kmesh v1.0正式发布!7大特性提升网络流量管理效率和安全性

Kmesh v1.0正式发布!7大特性提升网络流量管理效率和安全性

时间:2025-01-23 15:10:30浏览次数:1  
标签:destination 用户 网络流量 v1.0 waypoint 版本 Kmesh

摘要:在本次发布的 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/   点击关注,第一时间了解华为云新鲜技术~

标签:destination,用户,网络流量,v1.0,waypoint,版本,Kmesh
From: https://www.cnblogs.com/huaweiyun/p/18687810

相关文章

  • 30天开发操作系统 第 15 天 --多任务 v1.0
    前言话说,多任务到底是啥呢?”我们今天的内容,就从这个问题开始吧。多任务,在英语中叫做“multitask”,顾名思义就是“多个任务”的意思。简单地说,在Windows等操作系统中,多个应用程序同时运行的状态(也就是同时打开好几个窗口的状态)就叫做多任务。对于生活在现代社会的各......
  • 交换机如何协助实现对网络流量的审计
    本文探讨了交换机在网络流量审计中的关键作用,强调其作为数据转发节点的优势,可实现网络可见性和合规性支持。介绍了端口镜像技术和VLAN流量审计的工作原理,提供了Cisco和华为交换机的流量审计配置命令。同时,结合安全策略,如ACL和基于用户设备的策略,优化流量审计。最后,强调了日......
  • 地平线 LiDAR-Camera 融合多任务 BEVFusion 参考算法-V1.0
    该示例为参考算法,仅作为在征程6上模型部署的设计参考,非量产算法。1.简介激光雷达天然地具有深度信息,摄像头可以提供丰富的语义信息,它们是车载视觉感知系统中两个最关键的传感器。但是,如果激光雷达或者摄像头发生故障,则整个感知框架不能做出任何预测,这在根本上限制了实际自......
  • Prometheus 是一个开源的监控和报警工具,主要用于收集、存储和查询来自不同服务和应用
    Prometheus是什么?Prometheus是一个开源的监控和报警工具,主要用于收集、存储和查询来自不同服务和应用程序的时间序列数据(如CPU使用率、内存消耗、网络流量等)。它特别适合用于微服务架构下的监控,因为它支持多种集成方式,并能够处理大规模的、高频的数据。Prometheus具有以下主......
  • RapidTable release v1.0.3
    引言经过几日来的不懈努力,RapidTable库终于迎来了1.0系列。RapidTable库是专门用来文档类图像的表格结构还原,表格结构模型均属于序列预测方法,结合RapidOCR,将给定图像中的表格转化对应的HTML格式。效果展示模型列表model_type模型名称推理框架模型大小推理耗时......
  • 网络流量控制神器:深入理解 `tc` 命令及其实际应用
    网络流量控制神器:深入理解tc命令及其实际应用在现代互联网环境中,网络流量管理对系统稳定性和性能优化至关重要。作为Linux系统中强大的流量控制工具,tc(TrafficControl)为我们提供了对流量排队、限速、优先级管理等功能的全面控制。无论是开发测试还是生产环境下的性能调......
  • 《DNK210使用指南 -CanMV版 V1.0》第四十九章 综合例程
    第四十九章综合例程1)实验平台:正点原子DNK210开发板2)章节摘自【正点原子】DNK210使用指南-CanMV版V1.03)购买链接:https://detail.tmall.com/item.htm?&id=7828013987504)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html5)正点原子官......
  • 开发规范.NET-v1.0.241127
    一、编程规范(一)命名风格命名要找更有表现力的词,更专业的词,比如获取数据不用get而使用fetch别害怕长名称,长而具有描述性的名称比短而令人费解的名称好为作用域大的名字采用更长的名字,作用域小的使用短名字给变量名带上重要的细节,比如加上单位ms等。【强制】严禁......
  • 开发规范JAVA-v1.0_.241127
    一、编程规约(一)命名风格【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例:_name/_name/$Object/name/name$/Object$【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。说明:正确的英文拼写和......
  • API开发与管理规范v1.0_.20241127
    1.协议规范为了确保不同业务系统之间以及前后端的的数据交互的快捷性,通讯协议统一约定如下:对内调用的API接口统一使用HTTP协议对外互联网发布的API建议使用HTTPS协议也可以使用HTTP新的API接口必须使用标准的HTTP报文并使用JSON作为统一的数据传送标准如无特殊情况禁止在......