mirror of https://github.com/istio/istio.io.git
sync 3 blogs: ambient and tsc-announcement (#13262)
This commit is contained in:
parent
688f2a376a
commit
40a6ff8bd6
|
@ -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 频道与我们一起交流。
|
||||
|
|
|
@ -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!
|
|
@ -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 项目的长期贡献者,他们在指导委员会的任期告一段落。
|
Loading…
Reference in New Issue