sync 3 blogs: ambient and tsc-announcement (#13262)

This commit is contained in:
Michael 2023-06-03 18:22:47 +08:00 committed by GitHub
parent 688f2a376a
commit 40a6ff8bd6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 112 additions and 13 deletions

View File

@ -7,30 +7,43 @@ attribution: "丁少君 (Intel), 李纯 (Intel)"
keywords: [istio,ambient,ztunnel,eBPF]
---
在 Istio [ambient](/zh/blog/2022/introducing-ambient-mesh/) 模式中,运行在每个 Kubernetes 工作节点上的 `istio-cni` 组件负责将应用程序流量重定向到该节点上的零信任隧道代理ztunnel。默认情况下这依赖于 iptables 和 [Generic Network Virtualization Encapsulation (Geneve)](https://www.rfc-editor.org/rfc/rfc8926.html) 隧道来实现这种重定向。现在我们增加了基于 eBPF 的流量重定向方法的支持。
在 Istio [Ambient](/zh/blog/2022/introducing-ambient-mesh/) 模式中,运行在每个 Kubernetes
工作节点上的 `istio-cni` 组件负责将应用程序流量重定向到该节点上的零信任隧道代理ztunnel
默认情况下,这依赖于 iptables 和 [Generic Network Virtualization Encapsulation (Geneve)](https://www.rfc-editor.org/rfc/rfc8926.html)
隧道来实现这种重定向。现在我们增加了基于 eBPF 的流量重定向方法的支持。
## 为何采用 eBPF
虽然在实现 Istio ambient 模式重定向时需要考虑性能问题,但可编程性的考量也非常重要,以满足转发规则多样化和可定制化的要求。使用 eBPF你可以利用内核中的额外上下文来绕过繁杂的路由并快速简单地将数据包发送到最终目的地。
虽然在实现 Istio Ambient 模式重定向时需要考虑性能问题,但对于可编程性的考量也非常重要,
以满足转发规则多样化和可定制化的要求。使用 eBPF
你可以利用内核中的额外上下文来绕过繁杂的路由,并快速简单地将数据包发送到最终目的地。
此外,与 iptables 相比eBPF 对内核中数据包具有更深入的可见性以及额外的上下文操作,使更有效和灵活的管理数据流成为可能。
此外,与 iptables 相比eBPF 对内核中数据包具有更深入的可见性以及额外的上下文操作,
使更有效和灵活的管理数据流成为可能。
## eBPF 流量重定向如何工作
一个 eBPF 程序被预编译到 Istio CNI 组件中,这个 eBPF 程序会被加载到 [traffic control](https://man7.org/linux/man-pages/man8/tc-bpf.8.html) ingress 和 egress 的 hook 点上。`istio-cni` 会监听 Pod 事件,并在 Pod 加入或离开 Istio ambient 模式时将 eBPF 程序加载/卸载到 Pod 相关的网络接口上。
一个 eBPF 程序被预编译到 Istio CNI 组件中,这个 eBPF 程序会被加载到
[traffic control](https://man7.org/linux/man-pages/man8/tc-bpf.8.html) ingress
和 egress 的 hook 点上。`istio-cni` 会监听 Pod 事件,并在 Pod 加入或离开 Istio Ambient
模式时将 eBPF 程序加载/卸载到 Pod 相关的网络接口上。
使用 eBPF 程序替代 iptables 模式消除了对于 Geneve 的封包/解包的需求,并使流量的转发可以在内核空间中自定义。这既提高了性能,又提供了额外的灵活性。
使用 eBPF 程序替代 iptables 模式消除了对于 Geneve 的封包/解包的需求,
并使流量的转发可以在内核空间中自定义。这既提高了性能,又提供了额外的灵活性。
{{< image width="55%"
link="ambient-ebpf.png"
caption="ambient eBPF architecture"
caption="Ambient eBPF 架构"
>}}
所有进出应用程序 Pod 的流量都将被 eBPF 截获并重定向到相应的 ztunnel Pod。在 ztunnel 一侧eBPF 程序将根据 connection 状态的查找结果执行对应的重定向操作。这提供了更有效的控制应用程序 Pod 和 ztunnel Pod 之间网络流量的方法。
所有进出应用程序 Pod 的流量都将被 eBPF 截获并重定向到相应的 ztunnel Pod。
在 ztunnel 一侧eBPF 程序将根据 connection 状态的查找结果执行对应的重定向操作。
这提供了更有效的控制应用程序 Pod 和 ztunnel Pod 之间网络流量的方法。
## 在 ambient 模式下如何使用 eBPF
## 在 Ambient 模式下如何使用 eBPF
请按照[Istio Ambient Mesh 入门](/zh/blog/2022/get-started-ambient/)设置您的集群,但需以下一个小修改:在安装 Istio 时,请将 `values.cni.ambient.redirectMode` 配置参数设置为 `ebpf`
请按照 [Istio Ambient Mesh 入门](/zh/blog/2022/get-started-ambient/)设置您的集群,
但需以下一个小修改:在安装 Istio 时,请将 `values.cni.ambient.redirectMode` 配置参数设置为 `ebpf`
{{< text bash >}}
$ istioctl install --set profile=ambient --set values.cni.ambient.redirectMode="ebpf"
@ -44,7 +57,9 @@ ambient Writing ambient config: {"ztunnelReady":true,"redirectMode":"eBPF"}
## 性能提升
使用 eBPF 重定向的延迟和吞吐量QPS比使用 iptables 稍好。以下测试是在一个 `kind` 集群中运行,其中 Fortio 客户端向在 ambient 模式下运行的 Fortio 服务器发送请求eBPF 调试日志已禁用),并且两者都在同一 Kubernetes 工作节点上运行。
使用 eBPF 重定向的延迟和吞吐量QPS比使用 iptables 稍好。以下测试是在一个 `kind`
集群中运行,其中 Fortio 客户端向在 Ambient 模式下运行的 Fortio 服务器发送请求
eBPF 调试日志已禁用),并且两者都在同一 Kubernetes 工作节点上运行。
{{< text bash >}}
$ fortio load -uniform -t 60s -qps 0 -c <num_connections> http://<fortio-svc-name>:8080
@ -60,8 +75,14 @@ $ fortio load -uniform -t 60s -qps 8000 -c <num_connections> http://<fortio-svc-
## 总结
在流量重定向方面eBPF 和 iptables 都有其优缺点。eBPF 是一种现代、灵活和强大的替代方案允许在规则创建方面进行更多的自定义并提供更好的性能。但是它需要一个较新的内核版本4.20 或更高版本),这使得 eBPF 在一些系统上可能并不可用。另一方面iptables 被广泛使用,并且与大多数 Linux 发行版兼容,即使是那些使用较旧内核的发行版也可以兼容。但是,它缺乏 eBPF 的灵活性和可扩展性,并且可能具有较低的性能。
在流量重定向方面eBPF 和 iptables 都有其优缺点。eBPF 是一种现代、灵活和强大的替代方案,
允许在规则创建方面进行更多的自定义并提供更好的性能。但是它需要一个较新的内核版本4.20 或更高版本),
这使得 eBPF 在一些系统上可能并不可用。另一方面iptables 被广泛使用,并且与大多数 Linux
发行版兼容,即使是那些使用较旧内核的发行版也可以兼容。但是,它缺乏 eBPF 的灵活性和可扩展性,并且可能具有较低的性能。
最终,在流量重定向方面,选择 eBPF 还是 iptables 取决于系统的具体需求和要求,以及用户在使用每个工具方面的专业水平。一些用户可能更喜欢 iptables 的简单性和兼容性,而另一些用户可能需要 eBPF 的灵活性和性能。
最终,在流量重定向方面,选择 eBPF 还是 iptables 取决于系统的具体需求和要求,
以及用户在使用每个工具方面的专业水平。一些用户可能更喜欢 iptables 的简单性和兼容性,
而另一些用户可能需要 eBPF 的灵活性和性能。
目前,仍有许多工作需要完成,包括与各种 CNI 插件的集成,非常欢迎大家一同贡献以改善其易用性。请加入我们在 [Istio slack](https://slack.istio.io/) 上的 #ambient 频道与我们一起交流。
目前,仍有许多工作需要完成,包括与各种 CNI 插件的集成,非常欢迎大家一同贡献以改善其易用性。
请加入我们在 [Istio slack](https://slack.istio.io/) 上的 #ambient 频道与我们一起交流。

View File

@ -0,0 +1,38 @@
---
title: “Istio Ambient 服务网格已合并到 Istio 的主分支”
description: Ambient 网格的重要里程碑。
publishdate: 2023-02-28
attribution: "John Howard (Google), Lin Sun (Solo.io)"
keywords: [istio,ambient]
---
Istio Ambient 服务网格在实验性分支中于 2022 年 9 月[推出](/zh/blog/2022/introducing-ambient-mesh/)
引入了一种新的数据平面模式,可以在没有 Sidecar 的情况下使用 Istio。
通过与包括 Google、Solo.io、Microsoft、Intel、Aviatrix、华为、IBM 等在内的 Istio 社区的合作,
我们很高兴地宣布 Istio Ambient 服务网格已从实验性分支毕业,并合并到 Istio 的主分支!
这是 Ambient 网格的重要里程碑,为 Istio 1.18 发布 Ambient 网格以及在 Istio
的未来版本中默认安装 Ambient 网格铺平了道路。
## 与初始发布相比的重大变化 {#major-changes-from-initial-launch}
Ambient 网格旨在简化运营、扩展应用兼容性和减少基础设施成本。
Ambient 网格的最终目标是对您的应用透明,我们所做的一些更改让 ztunnel 和 waypoint 组件更简单、更轻量。
- ztunnel 组件已从头重写,现在能够以快速、安全和轻量级的方式运行。
欲了解更多信息,请参见[基于 Rust 的 Ztunnel 为 Istio Ambient 服务网格带来革命性变化](/zh/blog/2023/rust-based-ztunnel/)。
- 我们在简化 waypoint 代理配置方面进行了重大变更,以提高其可调试性和性能。
欲了解更多信息,请参见 [Istio 简化了 Ambient Waypoint 代理](/zh/blog/2023/waypoint-proxy-made-simple/)。
- 添加了 `istioctl x waypoint` 命令,帮助您方便地部署 waypoint 代理;
还添加了 `istioctl pc workload`,帮助您查看工作负载信息。
- 我们让用户能将 Istio 策略(如 AuthorizationPolicy显式绑定到
waypoint 代理,无需再选择目标工作负载。
## 参与进来 {#get-involved}
参阅我们的[入门指南](http://preliminary.istio.io/latest/docs/ops/ambient/getting-started/)
现在就可以尝鲜 Ambient 网格 Alpha 版本。我们很乐意听取您的意见!进一步了解 Ambient 网格:
- 在 Istio 的 [Slack](https://slack.istio.io) 中加入 #ambient#ambient-dev 频道。
- 参加每周的 Ambient 网格贡献者[会议](https://github.com/istio/community/blob/master/WORKING-GROUPS.md#working-group-meetings)(星期三)。
- 查阅 [Istio](http://github.com/istio/istio) 和 [ztunnel](http://github.com/istio/ztunnel)
代码库,提交 Issue 或 PR

View File

@ -0,0 +1,40 @@
---
title: "宣布 2023 年技术指导委员会的贡献席位"
description: Istio 指导委员会欢迎来自 Google、IBM、Huawei 和 Red Hat 的贡献者们。
publishdate: 2023-02-06
attribution: "Faseela K, for the Istio Steering Committee"
keywords: [istio,steering,governance,community,contributor]
---
[Istio 指导委员会](https://github.com/istio/community/blob/master/steering/README.md)由
9 个贡献席位和 4 个选举的社区席位组成,这些席位根据各公司对 Istio 项目的贡献比例进行分配。
去年,我们[选举了四名成员](/zh/blog/2022/steering-election-results/)加入社区席位。
现在是时候揭晓贡献席位成员的甑选结果了,看看是哪些公司推动了 Istio 社区的发展壮大。
遵照[指导委员会章程](https://github.com/istio/community/blob/master/steering/CHARTER.md)
每年 2 月份,我们会根据[年度协商确定的指标](https://github.com/istio/community/blob/master/steering/CONTRIBUTION-FORMULA.md)
查看哪些公司为 Istio 做出了最为杰出的贡献。
根据我们的[席位分配流程](https://docs.google.com/spreadsheets/d/1IIms6OT1DgJ_lbn5433sy5wvqNBIIQgQHoWZvpShSXk/edit#gid=1365082320)
今年 Google 将被分配 5 个席位,而 IBM / Red Hat 将被分配 2 个席位。
由于华为是过去 12 个月内对 Istio 做出第三大贡献的公司,
我们很高兴地宣布华为获得了两个贡献席位。
有鉴于此,以下是 Istio 指导委员会成员的完整清单,包括了所有贡献席位和社区席位:
- [Ameer Abbas](https://github.com/ameer00) (Google)
- [Craig Box](https://github.com/craigbox) (ARMO)
- [Rob Cernich](https://github.com/rcernich) (Red Hat)
- [Iris Ding](https://github.com/irisdingbj) (Intel)
- [Cameron Etezadi](https://github.com/cetezadi) (Google)
- [Jianpeng He](https://github.com/zirain) (Huawei)
- [John Howard](https://github.com/howardjohn) (Google)
- [Faseela K](https://github.com/kfaseela) (Ericsson Software Technology)
- [April Kyle Nassi](https://github.com/thisisnotapril)(Google)
- [Justin Pettit](https://github.com/justinpettit) (Google)
- [Christian Posta](https://github.com/christian-posta) (Solo.io)
- [Cale Rath](https://github.com/ctrath) (IBM)
- [Zhonghu Xu](https://github.com/hzxuzhonghu) (Huawei)
我们真挚地感谢 Louis Ryan、Srihari Angaluri、Kebe Liu 和 Jason McGee
他们都是 Istio 项目的长期贡献者,他们在指导委员会的任期告一段落。