当前位置: 首页 > article >正文

Kmesh v1.0 正式发布

2025 年 1 月 23 日,Kmesh 团队正式发布了 Kmesh v1.0235。Kmesh 作为一款开源的服务网格解决方案,v1.0 版本在网络流量管理领域引入了多项重磅特性2。具体如下134:

  1. IPsec 加密通信:引入 IPsec 加密协议,将节点间流量加密为密文,确保数据传输的机密性与完整性,降低数据窃听和篡改风险。依赖 Kubernetes 的灵活性,利用 CRD 管理加密密钥,通过 KmeshNodeInfo CRD 存储节点信息,借助 Kubernetes api - server 进行节点间信息同步,在复杂集群环境中保障通信安全。
  2. 授权策略下沉:将更多 Authorization 功能下沉到 XDP 程序,支持基于 IP 的授权处理。在 TCP 建链时进行鉴权,通过 tail - call 机制串联 policy、rule、clause 和 match 四步处理。能在网络数据包进入内核协议栈最早阶段鉴权,减少上下文切换开销,提升数据包处理效率,丢弃未授权数据包,增强系统安全性和性能。
  3. 基于地域的负载均衡:具备基于地域的负载均衡能力,可将流量引导至距离用户最近的服务实例,降低延迟,提高服务可用性。提供 region、zone、subzone、nodename 和 clusterid 五种不同粒度的地域负载均衡策略,用户可灵活配置。在负载均衡策略更新期间,会逐一更新 endpointmap 中的 endpoint_key,确保服务连续性。
  4. 可观测性优化:优化了 Metrics 标签,使 destination_service 始终记录最终 destination 信息,让呈现的 metrics 更加合理易懂,提升可观测数据的清晰度和可用性。与 Kiali 结合,为用户呈现清晰直观的服务拓扑图,帮助用户全面了解服务依赖关系和通信状态,便于监控和诊断网络状况,快速识别性能瓶颈和故障点。
  5. 全模式无中断重启:Kernel - Native 模式提供流量重启无中断能力,重启后可优雅加载 eBPF map 和 Prog,无需重新注册服务。通过将 eBPF Prog 和 map pin 到内核目录中,与 kmesh - daemon 解耦,确保 Kmesh 关闭时也能治理流量,重启期间服务不中断。若有配置更新,重启后会从 istiod 中获取最新配置,实现信息同步。
  6. 熔断与限流功能:新增的熔断与限流功能在 Kernel - Native 模式下发挥作用,能在高并发场景下保障系统的稳定性,避免因流量激增影响用户体验,增强了系统在高负载下的稳定性。
  7. 适配 Istio 1.24:适配了 Istio 1.24,并通过严格的 e2e 测试确保稳定性,使用户可兼容使用 Istio 的最新特性,拓宽了 Kmesh 的应用范围。

Kmesh v1.0的授权策略下沉具体是如何实现的?

  1. 功能下沉至 XDP 程序:将更多的 Authorization 功能从原本较高层级下沉到 XDP(eBPF)程序中,使得授权处理能够在网络数据包进入内核协议栈的最早阶段进行,以此减少用户态与内核态之间的上下文切换开销,提升数据包处理效率。
  2. 基于 IP 的授权处理:支持基于 IP 的授权处理,在 TCP 建链时就开始进行鉴权操作,对每个试图建立连接的数据包进行检查,判断其源 IP 和目标 IP 等信息是否符合授权规则。
  3. tail-call 机制串联处理步骤:将 authorization 的处理分成 policy(策略)、rule(规则)、clause(条款)和 match(匹配)四步,通过 eBPF 的 tail - call 机制将这四步处理进行串联。按照顺序依次执行每一步的逻辑,前一步的处理结果会作为输入传递给下一步,直到完成整个授权判断过程。
  4. 丢弃未授权数据包:如果数据包在鉴权过程中没有通过,即不符合设定的授权策略,XDP 程序会直接丢弃该数据包,阻止 TCP 连接建立,从而避免未授权的流量进入系统,降低系统资源消耗,增强系统安全性。


http://www.kler.cn/a/525026.html

相关文章:

  • PySide(PyQT)进行SQLite数据库编辑和前端展示的基本操作
  • Visual Studio Code修改terminal字体
  • IME关于输入法横屏全屏显示问题-Android14
  • mac安装dockerdesktop优化
  • Pyside的QWebEngineProfile类
  • 58.界面参数传递给Command C#例子 WPF例子
  • 用JavaScript实现观察者模式
  • 小白爬虫冒险之反“反爬”:无限debugger、禁用开发者工具、干扰控制台...(持续更新)
  • 【16届蓝桥杯寒假刷题营】第2期DAY4
  • 安卓逆向之脱壳-认识一下动态加载 双亲委派(二)
  • 洛谷P3383 【模板】线性筛素数
  • 在Visual Studio Code自带的按键编译无法使用该怎么办
  • JavaScript_01
  • Baklib如何重新定义企业知识管理提升组织效率与创新力
  • MyBatis 缓存机制详解
  • Java学习教程,从入门到精通,JDBC 删除表语法及案例(103)
  • 基于Langchain-Chatchat + ChatGLM 本地部署知识库
  • 240. 搜索二维矩阵||
  • 【JavaEE】Spring(6):Mybatis(下)
  • docker安装emqx
  • 11JavaWeb——SpringBootWeb案例02
  • S4 HANA明确Tax Base Amount是否考虑现金折扣(OB69)
  • 蓝桥杯python语言基础(4)——基础数据结构(下)
  • 洛谷P11464 支配剧场
  • 深度学习框架应用开发:基于 TensorFlow 的函数求导分析
  • SpringSecurity:There is no PasswordEncoder mapped for the id “null“