Sync Ambient overview and remove ztunnel docs into Chinese (#15095)

This commit is contained in:
Wilson Wu 2024-05-15 15:01:11 +08:00 committed by GitHub
parent d61aece3fe
commit 400eff0ed9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 62 additions and 83 deletions

View File

@ -1,83 +0,0 @@
---
title: 流量路由
description: 了解流量如何在 Ambient 网格中的工作负载之间路由。
weight: 2
owner: istio/wg-networking-maintainers
test: no
---
在 {{< gloss "ambient" >}}Ambient 模式{{< /gloss >}}中,工作负载分为 3 类:
1. **脱离网格:**这是一个标准 Pod未启用任何网格功能。
1. **网格内:**这是一个 Pod其流量被 {{< gloss >}}ztunnel{{< /gloss >}} 在 4 层拦截。
在此模式下,可以对 Pod 流量实施 L4 策略。可以通过在 Pod 的命名空间上设置 `istio.io/dataplane-mode=ambient` 标签来为 Pod 启用此模式。
这将为该命名空间中的所有 Pod 启用**网格内**模式。
1. **启用 waypoint**这是一个“网格内”的 Pod**并且**部署了 {{< gloss "waypoint" >}}waypoint 代理{{< /gloss >}}。
根据工作负载所属的类别,请求路径会有所不同。
## Ztunnel 路由 {#ztunnel-routing}
### 出站 {#outbound}
当处于 Ambient 模式中的 Pod 发出出站请求时,它将被透明地重定向到 Ztunnel
由 Ztunnel 来决定如何转发请求以及转发到哪儿。总之,流量路由行为就像 Kubernetes 默认的流量路由一样;
`Service` 的请求将被发送到 `Service` 内的一个端点,
而直接发送到 `Pod` IP 的请求则将直接转到该 IP。
然而,根据目的地的权能,可能会出现不同的行为。
如果目的地也被添加到网格中,或以其他方式具有 Istio 代理权能(例如 Sidecar
请求将被升级为加密的 {{< gloss "HBONE" >}}HBONE 隧道{{< /gloss >}}。
如果目的地有一个 waypoint 代理,除了升级到 HBONE 之外,该请求还将被转发到该 waypoint 以执行 L7 策略。
请注意,在向 `Service` 发出请求的情况下,如果该服务**具有**一个 waypoint
则该请求将被发送到其 waypoint 以对流量实施 L7 策略。
类似地,在向 `Pod` IP 发出请求的情况下,如果 Pod **具有**一个 waypoint
则该请求将被发送到其 waypoint以对流量实施 L7 策略。由于可以改变 `Deployment` 中与 Pod 关联的标签,
因此从技术上讲,某些 Pod 可以使用 waypoint而其他 Pod 则不能。通常建议用户避免这种高级用例。
### 入站 {#inbound}
当处于 Ambient 模式中的 Pod 收到一个入站请求时,它将被透明地重定向到 Ztunnel。
当 Ztunnel 收到请求时,它将应用鉴权策略并仅在请求与策略匹配时转发请求。
Pod 可以接收 HBONE 流量或纯文本流量。这两种流量默认都可以被 Ztunnel 接受。
因为来源自网格外的请求在评估鉴权策略时没有对等身份,
所以用户可以设置一个策略,要求进行身份验证(可以是**任何**身份验证或特定身份验证),以阻止所有纯文本流量。
当目标启用 waypoint 时,如果来源位于 Ambient 网格中,
则来源的 ztunnel 确保请求**必定**会通过强制执行策略的 waypoint。
但是,网格外部的工作负载对 waypoint 代理一无所知,因此即使目标启用了 waypoint
它也会直接将请求发送到目标,而不通过任何 waypoint 代理。
目前,来自 Sidecar 和网关的流量也不会通过任何 waypoint 代理,并且它们将在未来版本中意识到 waypoint 代理。
## Waypoint 路由 {#waypoint-routing}
waypoint 以独占方式接收 HBONE 请求。
收到请求后waypoint 将确保流量适用于使用它的 `Pod``Service`
接受流量后waypoint 将在转发之前强制执行 L7 策略
(例如 `AuthorizationPolicy`、`RequestAuthentication`、`WasmPlugin`、`Telemetry` 等)。
对与直接发送到 `Pod` 的,请求将在应用策略后才会被直接转发。
对于发送到 `Service` 的请求waypoint 还将应用路由和负载均衡。
默认情况下,`Service` 会简单地将请求路由到本身,在其端点之间进行负载均衡。
这可以重载为针对 `Service` 的路由。
例如,以下策略将确保到 `echo` 服务的请求被转发到 `echo-v1`
{{< text yaml >}}
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: echo
spec:
parentRefs:
- group: ""
kind: Service
name: echo
rules:
- backendRefs:
- name: echo-v1
port: 80
{{< /text >}}

View File

@ -0,0 +1,62 @@
---
title: 概述
description: Istio Ambient 数据平面模式概述。
weight: 1
owner: istio/wg-docs-maintainers-english
test: no
---
在 **Ambient 模式**下Istio 使用每个节点的
Layer 4L4代理和可选的每个命名空间的 Layer 7L7代理来实现其[功能](/zh/docs/concepts)。
这种分层方法允许您以更加增量的方式采用 Istio根据需要在每个命名空间的基础上
从无网格平滑过渡到安全的 L4 覆盖,再到完整的 L7 处理和策略。 此外,
在不同 Istio {{< gloss "data plane" >}}数据平面{{< /gloss >}}模式下运行的工作负载可以无缝互操作,
允许用户根据随时间变化的特定需求混合和匹配功能。
由于工作负载 Pod 不再需要在 Sidecar 中运行代理才能参与网格,
因此 Ambient 模式通常被非正式地称为“无 Sidecar 网格”。
## 工作原理 {#how-it-works}
Ambient 模式将 Istio 的功能分为两个不同的层。在底层,**ztunnel** 安全覆盖处理流量的路由和零信任安全。
除此之外,在需要时,用户可以启用 L7 **waypoint 代理**来访问 Istio 的全部功能。
waypoint 代理虽然比单独的 ztunnel 覆盖更重,但仍然作为基础设施的 Ambient 组件运行,
不需要对应用程序 Pod 进行修改。
{{< tip >}}
使用 Sidecar 模式的 Pod 和工作负载可以与使用 Ambient 模式的 Pod 共存于同一网格内。
术语“Ambient 网格”是指被安装时就支持 Ambient 模式的 Istio 网格,它可以支持使用任一类型数据平面的网格 Pod。
{{< /tip >}}
有关 Ambient 模式的设计以及它如何与 Istio {{< gloss "control plane" >}}控制平面{{< /gloss >}}交互的详细信息,
请参阅[数据平面](/zh/docs/ambient/architecture/data-plane)和[控制平面](/zh/docs/ambient/architecture/control-plane)架构文档。
## ztunnel
ztunnelZero Trust tunnel零信任隧道组件是一个专门构建的基于每个节点的代理
为 Istio 的 Ambient 数据平面模式提供支持。
ztunnel 负责安全连接和验证网格内的工作负载。ztunnel 代理是用 Rust 编写的,
旨在处理 L3 和 L4 功能,例如 mTLS、身份验证、L4 鉴权和遥测。
ztunnel 不会终止工作负载 HTTP 流量或解析工作负载 HTTP 标头。
ztunnel 确保 L3 和 L4 流量高效、安全地传输到 waypoint 代理,
在 waypoint 代理中实现了 Istio 的全套 L7 功能,例如 HTTP 遥测和负载均衡。
术语“安全覆盖”用于统一描述通过 ztunnel 代理在 Ambient 网格中实现的 L4 网络功能集。
在传输层,这是通过称为 [HBONE](/zh/docs/ambient/architecture/hbone)
的基于 HTTP CONNECT 的流量隧道协议来实现的。
## waypoint 代理 {#waypoint-proxies}
waypoint 代理是 {{< gloss >}}Envoy{{</ gloss >}} 代理的部署;与 Istio 用于 Sidecar 数据平面模式的引擎相同。
waypoint 代理在应用程序 Pod 之外运行。它们的安装、升级和扩展独立于应用程序。
Istio 在 Ambient 模式下的一些用例可以仅通过 L4 安全覆盖功能来解决,
并且不需要 L7 功能,因此不需要部署 waypoint 代理。需要高级流量管理和 L7 网络功能的用例将需要部署 waypoint。
| 应用程序部署用例 | Ambient 模式配置 |
| ------------------------------- | -------------------------- |
| 通过双向 TLS、客户端应用程序流量的加密和隧道数据传输、L4 授权、L4 遥测实现零信任网络 | 仅 ztunnel默认 |
| 如上所述,加上高级 Istio 流量管理功能(包括 L7 授权、遥测和 VirtualService 路由) | ztunnel 及 waypoint 代理 |