Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
102 changes: 102 additions & 0 deletions i18n/zh/docusaurus-plugin-content-blog/kmesh-1.1-release/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
---
title: Kmesh V1.1.0 正式发布!
authors:
- Kmesh
slug: kmesh-1.1-release
date: 2025-05-23
sidebar_position: 1
---

我们很高兴地宣布发布 Kmesh v1.1.0,这是过去三个月全球社区共同努力实现的里程碑。特别感谢 LXF Project 的贡献者,他们的奉献对于推动此次发布至关重要。

在 v1.0.0 的基础上,本次发布对 Kmesh 的架构、可观测性和生态系统集成进行了重大增强。Kmesh 官方网站经过了全面重新设计,提供了直观的界面和简化的文档,以增强用户和开发者的体验。在底层,我们重构了 DNS 模块并添加了长连接指标,从而为更多流量模式提供更深入的洞察。

在内核原生(Kernel-Native)模式下,我们减少了侵入性的内核修改。此外,我们使用全局变量替换 BPF 配置映射(config map)以简化底层复杂性。与 Istio 1.25 的兼容性已通过严格验证,确保证与最新 Istio 版本的无缝互操作性。值得注意的是,长期存在的 TestKmeshRestart E2E 测试用例不稳定性问题已通过长期调查和底层 BPF 程序的重构得到解决,标志着运行时可靠性的飞跃。

## 主要特性

### 网站改版

Kmesh 官方网站经历了彻底的重新设计,提供了直观的用户体验、改进的文档、重新组织的内容层次结构和简化的导航。在解决上一版本的反馈时,我们专注于可以增强用户体验的关键领域。最初的界面存在一些可用性挑战,偶尔会导致导航困难。我们的博客模块尤其需要关注,因为其内容组织和视觉层次结构影响了内容的发现和可读性。从工程角度来看,我们认识到通过更好的组件组织和更系统的样式方法来改进代码结构的机会,因为现有的实现在维护上已变得复杂。

为了解决这些问题,我们转向了使用 Docusaurus 的 React,这是一个对开发者更友好的现代文档框架。这使我们能够创建模块化组件,通过复用性消除冗余代码。Docusaurus 提供了专门为文档和博客设计的内置导航系统,以及版本控制文档功能。我们实现了英语和中文文档的多语言支持,添加了高级搜索功能,并完全重新组织了内容结构。结果是极大地改善了体验,使 Kmesh 网站对所有用户更易访问且更有价值。

### 长连接指标

在此发布之前,Kmesh 在 TCP 连接终止和建立期间提供访问日志,其中包含有关连接的详细信息,例如发送字节数、接收字节数、丢包数、RTT 和重传数。Kmesh 还提供特定于工作负载和服务的指标,例如 Pod 打开和关闭的总连接数、发送和接收的字节数、丢包数、最小 RTT。这些指标仅在连接关闭后更新。

在此版本中,我们实现了 TCP 长连接的访问日志和指标,开发了一种持续监控和报告机制,可在长生存期 TCP 连接的整个生命周期内捕获详细的实时数据。访问日志定期报告信息,例如报告时间、连接建立时间、发送字节数、接收字节数、丢包数、RTT、重传数和状态。发送和接收的字节数、丢包数、重传数等指标也会针对长连接定期报告。

### DNS 重构

当前的 DNS 流程包括 CDS 刷新流程。因此,DNS 与内核原生模式深度耦合,无法在双引擎模式下使用。

![image](images/dns1.jpg)

在 1.1 版本中,我们重构了 Kmesh 的 DNS 模块。数据在 Dns 中循环通过刷新队列的结构不再是包含 cds 的结构,而是一个域,因此 Dns 模块不再关心 Kmesh 模式,只提供要解析的主机名。

![image](./images/dns2.jpg)

### BPF 配置映射优化

Kmesh 取消了专用的 kmesh_config_map BPF 映射,该映射以前存储全局运行时配置,例如 BPF 日志级别和监控开关。这些设置现在通过全局变量进行管理。利用全局变量简化了 BPF 配置管理,提高了运行时效率和可维护性。

### 优化内核原生模式以减少对内核的侵入性修改

内核原生模式需要大量的侵入性内核重构来实现基于 HTTP 的流量控制。其中一些修改可能对内核产生重大影响,这使得内核原生模式难以在实际生产环境中部署和使用。
为了解决这个问题,我们同步修改了内核原生模式下的内核以及涉及的 ko 和 eBPF。通过此版本的优化,在内核 5.10 中,内核修改限制为四个,在内核 6.6 中,内核修改减少到仅一个。这最后一个也将尽可能消除,目标是最终在原生版本 6.6 及以上的内核上运行内核原生模式。

![image](./images/bpf.jpg)

### 适配 Istio 1.25

Kmesh 已验证与 Istio 1.25 的兼容性,并在 CI 中添加了相应的 E2E 测试。Kmesh 社区在 CI 中维护三个 Istio 版本的验证,因此 Istio 1.22 的 E2E 测试已从 CI 中移除。

## 关键错误修复

**kmeshctl install waypoint error ([#1287](https://github.com/kmesh-net/kmesh/issues/1287))**

_根本原因分析:_

_在构建 waypoint 镜像时移除了版本号前多余的 v。_

**TestKmeshRestart flaky ([#1192](https://github.com/kmesh-net/kmesh/issues/1192))**

_根本原因分析:_

_这个问题实际上与 Kmesh 重启无关,在非重启场景下也可能产生。_

_根本原因是不适合使用 [sk](https://github.com/kmesh-net/kmesh/blob/main/bpf/kmesh/workload/cgroup_sock.c#L64) 作为映射 [map_of_orig_dst](https://github.com/kmesh-net/kmesh/blob/main/bpf/kmesh/workload/cgroup_sock.c#L80) 的键,因为它是被重用的,映射的值会被错误地覆盖,导致元数据在应该被编码到发送给 waypoint 的连接中时没有被编码,从而导致此问题中的重置错误。_

**TestServiceEntrySelectsWorkloadEntry flaky ([#1352](https://github.com/kmesh-net/kmesh/issues/1352))**

_根本原因分析:_

_在此测试用例之前,有一个测试 `TestServiceEntryInlinedWorkloadEntry` 会生成两个工作负载对象,例如 `Kubernetes/networking.istio.io/ServiceEntry/echo-1-21618/test-se-v4/10.244.1.103` 和 `ServiceEntry/echo-1-21618/test-se-v6/10.244.1.103`。_

_在当前用例中,WorkloadEntry 会生成工作负载对象 `Kubernetes/networking.istio.io/WorkloadEntry/echo-1-21618/test-we`。_

_如果测试用例运行得足够快,前两个工作负载对象的移除操作将与后一个对象的创建操作聚合在一起。_

_Kmesh 会先处理新对象,然后再移除旧资源,[参考](https://github.com/kmesh-net/kmesh/blob/main/pkg/controller/workload/workload_processor.go#L841)。_

_这三个对象的 IP 地址相同,最终会导致在 Kmesh 工作负载缓存中找不到 IP 地址,从而导致认证失败和连接超时。_

## 致谢

Kmesh v1.1.0 包含来自 14 位贡献者的 118 次提交。我们要向所有贡献者表示衷心的感谢:

| | | | |
| -------------- | ---------------- | ------------ | ----------- |
| @hzxuzhonghu | @LiZhenCheng9527 | @YaoZengzeng | @silenceper |
| @weli-l | @sancppp | @Kuromesi | @yp969803 |
| @lec-bit | @ravjot07 | @jayesh9747 | @harish2773 |
| @Dhiren-Mhatre | @Murdock9803 | | |

我们一直以开放中立的态度发展 Kmesh,并继续打造 Sidecarless 服务网格行业的标杆解决方案,服务千行百业,推动服务网格健康有序发展。Kmesh 正处于快速发展阶段,诚邀有志之士加入我们!

## 参考链接

- [Kmesh Release v1.1.0](https://github.com/kmesh-net/kmesh/releases/tag/v1.1.0)
- [Kmesh GitHub](https://github.com/kmesh-net/kmesh)
- [Kmesh Website](https://kmesh.net/)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
108 changes: 108 additions & 0 deletions i18n/zh/docusaurus-plugin-content-blog/kmesh-1.2-release/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
---
title: Kmesh V1.2.0 正式发布!
authors:
- Kmesh
date: 2025-12-09
sidebar_position: 1
---

我们很高兴地宣布发布 Kmesh v1.2.0,延续了项目向生产就绪、内核原生服务网格的稳步演进。

在 v1.1 建立的坚实基础上,本次发布专注于加强可靠性、提高升级安全性以及通过 targeted 增强和改进加深与 Istio 生态系统的兼容性。在过去的发布周期中,社区紧密合作,识别现实世界的运营挑战,并通过有针对性的增强和改进来解决这些问题。

Kmesh v1.2.0 是开源社区持续合作的成果,汇聚了来自全球开发者和用户的宝贵贡献,包括 LXF 项目的持续支持。此版本并未引入破坏性更改,而是强调使现有功能更加健壮、可预测,并为长期运行的生产工作负载做好准备。

除了这些增强功能外,Kmesh 网站和文档也在不断发展,保持对新老用户的清晰度和可访问性。

## v1.2 核心增强功能

### DNS 与 dnsProxy

基于 v1.1 中引入的 DNS 重构,v1.2 添加了 dnsProxy 功能,允许 Kmesh 拦截托管服务的 DNS 解析请求。
![DNS Proxy Flow](./images/dns1.jpg)

专用的域名到 IP 映射表提高了主机名解析的可靠性,并简化了与非 Kubernetes 原生服务的集成。这些增强功能确保了所有操作模式下服务发现的一致性,并在复杂的部署场景中提高了整体 DNS 性能。
![DNS Proxy Mapping](./images/dns2.jpg)

### IPsec 增强

Kmesh v1.2 通过增强的 IPsec 支持加强了安全性和运行稳定性。通过重新设计的 eBPF 解密逻辑和优化的 xfrm 状态及策略配置,解决了 Kmesh 管理节点与未管理节点之间的关键互操作性问题。
![BPF decryption](./images/bpf.jpg)
此外,kmeshctl 工具现在提供加密密钥的秘钥管理,简化了安全通信的秘钥创建和生命周期管理。

### ServiceEntry 改进

v1.2 中全面扩展了 ServiceEntry 支持。用户现在可以利用 dnsProxy 无缝集成各种外部服务,包括非 Kubernetes 原生工作负载。这一改进拓宽了服务网格集成的范围,并简化了混合环境中的连接。

### 零停机升级

基于 v0.5.0 的成就,v1.2 引入了在 BPF 映射结构保持不变的情况下升级 Kmesh 守护进程而不中断已建立连接的能力。目前处于 alpha 阶段,此功能显着减少了维护操作期间的服务停机时间,并增强了生产部署的整体可靠性。

### 双引擎模式增强

双引擎模式现在支持熔断和本地限流,从而提供对服务间通信的更精细控制。这些功能提高了弹性,防止服务故障和流量激增,并增强了不同负载条件下的系统稳定性。

### Istio 兼容性更新

Kmesh v1.2 确保与 Istio 1.26 的完全兼容性,允许用户利用最新的功能和安全改进。CI 测试中已弃用对 Istio 1.23 的支持,鼓励升级到较新版本以获得更好的性能和功能可用性。

## 关键错误修复与稳定性改进

Kmesh v1.2 包含大量修复和改进,增强了稳定性、可靠性和操作安全性。我们的团队和贡献者致力于解决关键问题,提高安全性,并确保服务网格各层的生产就绪性。

### IPsec 与安全增强

解决了启用 IPsec 的 Pod 之间的通信问题,kmeshctl 现在支持自动生成秘钥,简化了安全通信设置。添加了额外的 E2E 测试以验证正确性并防止回退。这些更改提高了可用性和集群安全性。
参见 GitHub PRs #1496, #1487

### Kmeshctl 与工作流修复

对 kmeshctl 和开发工作流进行了多项增强,包括新命令、准备脚本 (prepare-dev) 和文档同步工作流。修正了轻微的可用性问题,简化了开发人员与 CLI 的交互,并减少了设置和维护期间的摩擦。
参见 PRs #1426, #1498

### eBPF 与内核原生修复

修复了与跨命名空间通信和连接指标相关的不稳定测试用例,并添加了 cgroup_skb eBPF 程序以改善网络数据包处理。这些修复增强了内核原生模式的可靠性,并减少了生产环境中的错误。
参见 PRs #1452, #1474

### CI、依赖项与文档更新

升级依赖项以解决漏洞,优化 CI 工作流,并应用了包括 markdown linting 和中文语法检查在内的文档改进。这些更改确保了安全、可靠的构建,并提高了贡献者的可用性。
参见 PRs #1434, #1484

### Istio 适配与升级安全

Kmesh v1.2 完全适配 Istio 1.26,在 CI 测试中弃用了旧版本。启用零停机升级的提案和功能确保 Kmesh 可以在不中断现有连接的情况下进行更新,从而增强生产就绪性。
参见 PRs #1513, #1503, #1441

总之,这些修复和增强使 Kmesh v1.2 更加健壮、稳定和安全,为生产部署提供了信心,并为未来的功能开发奠定了坚实的基础。

## 致谢

Kmesh v1.2.0 建立在 v1.1 的坚实基础之上,反映了快速增长的社区的贡献。我们非常高兴地欢迎以下在此版本中首次做出贡献的新贡献者:

- @Flying-Tom
- @zrggw
- @yashisrani
- @AkarshSahlot
- @mdimado
- @Vinnu124
- @wxnzb
- @072020127
- @xiaojiangao123
- @Copilot

此外,Kmesh v1.2.0 包含了我们整个贡献者社区的贡献,包括:

- @YaoZengzeng @hzxuzhonghu @dependabot
- @Flying-Tom @zrggw @sancppp
- @Kuromesi @072020127 @yashisrani
- @yp969803 @AkarshSahlot @mdimado
- @xiaojiangao123 @lec-bit @Vinnu124
- @LiZhenCheng9527 @wxnzb 以及其他许多人。

## 参考链接

- [Kmesh Release v1.2.0](https://github.com/kmesh-net/kmesh/releases/tag/v1.2.0)
- [Kmesh GitHub](https://github.com/kmesh-net/kmesh)
- [Kmesh Website](https://kmesh.net/)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
title: LFX 导师计划体验 - Kmesh TCP 长连接指标
summary: 入选 Kmesh LFX 2025 学员,致力于长连接指标采集工作。
authors:
- yp969803
tags: [LFX-2025]
date: 2025-05-28T11:11:23+00:00
last_update:
date: 2025-05-28T11:11:23+00:00
sidebar_label: "LFX-2025 TCP 长连接指标"
---

## 介绍

读者好,我是 Yash,来自印度的一名应届毕业生。我喜欢构建很酷的东西并解决现实世界的问题。过去三年我一直在云原生领域工作,探索 Kubernetes、Cilium、Istio 等技术。

我有幸完成了 LFX 2025 第一期 Kmesh 的指导计划,这是一次丰富且宝贵的经历。在过去的三个月里,我在为项目做贡献的同时,获得了大量的知识和实践经验。在这篇博客中,我记录了我的指导旅程以及我作为学员所完成的工作。

## LFX 导师计划 – 概述

由 Linux 基金会运营的 LFX 导师计划旨在帮助学生和早期职业专业人士通过在经验丰富的导师指导下参与实际项目,获得开源开发的实践经验。

参与者为 CNCF、LF AI、LF Edge 等基金会托管的高影响力项目做出贡献。该计划通常全年分 3 期通过,每期持续约三个月。

[更多信息](https://mentorship.lfx.linuxfoundation.org/#projects_all)

## 我的录取

我是一名活跃的开源贡献者,热爱为开源做贡献。我的兴趣与云原生技术高度一致。我熟悉 LFX 和 GSoC 等流行的指导计划,这些计划旨在帮助学生开启开源世界的大门。
基于我的工作,Kmesh 社区也提拔我成为 Kmesh 的成员。
我下定决心申请 LFX 2025 第一期,并于 2 月初开始探索项目。LFX 下 CNCF 的项目列在 [cncf/mentoring](https://github.com/cncf/mentoring) GitHub 仓库中。我遇到了 [Kmesh](https://github.com/kmesh-net/kmesh) 项目,这是一个新加入 CNCF 沙箱并在 LFX 首次参与的项目。
我发现 Kmesh 项目特别令人兴奋,因为它解决的问题是提供无 Sidecar 的服务网格数据平面。这种方法可以通过提高性能和减少开销极大地造福社区。

Kmesh 在第一期提出了 4 个项目,我选择了 [long-connection-metrics](https://github.com/kmesh-net/kmesh/issues/1211) 项目,因为它允许我使用 eBPF,而我已经有了使用 eBPF 的相关经验。

我通过阅读文档和为 Good First Issues 做贡献开始了 Kmesh 项目的探索。随着我参与度的加深,导师们开始注意到我。我还为长连接指标项目提交了一份 [提案](https://github.com/kmesh-net/kmesh/blob/main/docs/proposal/tcp_long_connection_metrics.md)。

2 月下旬,我收到了 LFX 的邮件,通知我也被选中了。
![email](./images/acceptance-email.png)

## 项目演练

`tcp long connection metrics` 项目旨在实现 TCP 长连接的访问日志和指标,开发一种持续监控和报告机制,以便在长生存期 TCP 连接的整个生命周期内捕获详细的实时数据。

使用 eBPF 钩子收集连接统计信息,如发送/接收字节数、丢包数、重传数等。

![design](./images/tcp_long_conn_design.png)

[更多信息](https://kmesh.net/docs/transport-layer/l4-metrics)

## 导师体验

Kmesh 维护者总是随时准备帮助我解决任何疑问,无论是在 Slack 还是 GitHub 上。此外,每周四定期举行社区会议,我可以在会上提问并讨论各种话题。在过去的三个月里,我从他们身上学到了很多,包括如何有效地解决问题以及在开发过程中考虑边缘情况。

基于我的贡献和积极参与,Kmesh 社区认可了我的努力,并提拔我为组织成员。这种认可确实令人鼓舞,并激励我继续为 Kmesh 做贡献并帮助项目成长。
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading