mirror of https://github.com/istio/istio.io.git
[zh] Translate Gateway API Mesh stable blog into Chinese (#15076)
* Translate Gateway API Mesh stable blog into Chinese * Finish translate * Fix lint
This commit is contained in:
parent
a9bd9b069d
commit
181145af77
|
|
@ -0,0 +1,109 @@
|
|||
---
|
||||
title: "Gateway API 网格支持提升至稳定状态"
|
||||
description: 下一代 Kubernetes 流量路由 API 现已普遍适用于服务网格用例。
|
||||
publishdate: 2024-05-13
|
||||
attribution: John Howard - solo.io; Translated by Wilson Wu (DaoCloud)
|
||||
keywords: [istio, traffic, API]
|
||||
target_release: 1.22
|
||||
---
|
||||
|
||||
我们很高兴地宣布 [Gateway API](https://gateway-api.sigs.k8s.io/)
|
||||
中的服务网格支持现已正式“稳定”!在此版本中(Gateway API v1.1 和 Istio v1.22 的一部分),
|
||||
用户可以将下一代流量管理 API 同时应用于入口(“南北向”)和服务网格内(“东西向”)用例。
|
||||
|
||||
## 什么是 Gateway API? {#what-is-the-gateway-api}
|
||||
|
||||
Gateway API 是属于 Kubernetes 的 API 集合,专注于流量路由和管理。
|
||||
这些 API 受到 Kubernetes 的 `Ingress` 和 Istio 的 `VirtualService` 和 `Gateway` API 的启发,
|
||||
并发挥许多相同的作用。
|
||||
|
||||
自 2020 年以来,这些 API 一直在 Istio 以及[广泛协作](https://gateway-api.sigs.k8s.io/implementations/)的组织中得到开发,
|
||||
并且自那时以来已经取得了长足的进步。虽然这些 API 最初仅针对服务入口用例
|
||||
([去年](https://kubernetes.io/zh-cn/blog/2023/10/31/gateway-api-ga/)发布了 GA 版),
|
||||
但我们一直设想允许相同的 API 也可用于集群**内**的流量。
|
||||
|
||||
在此版本中,这一愿景成为现实:Istio 用户可以对所有流量使用相同的路由 API!
|
||||
|
||||
## 入门 {#getting-started}
|
||||
|
||||
在整个 Istio 文档中,我们的所有示例都已更新,以展示如何使用 Gateway API,
|
||||
因此请探索一些[任务](/zh/docs/tasks/traffic-management/)以获得更深入的理解。
|
||||
|
||||
使用 Gateway API 进行服务网格对于已经使用 Gateway API
|
||||
进行入口的用户以及在服务网格中使用 `VirtualService` 的用户来说应该感到熟悉。
|
||||
|
||||
* 与用于入口的 Gateway API 相比,路由的目标由 `Gateway` 替代为`Service`。
|
||||
* 与 `VirtualService` 相比,路由与一组 `hosts` 关联,以 `Service` 为目标。
|
||||
|
||||
这是一个简单的示例,演示了根据请求头将请求路由到两个不同版本的 `Service`:
|
||||
|
||||
{{< text yaml >}}
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: reviews
|
||||
spec:
|
||||
parentRefs:
|
||||
- group: ""
|
||||
kind: Service
|
||||
name: reviews
|
||||
port: 9080
|
||||
rules:
|
||||
- matches:
|
||||
- headers:
|
||||
- name: my-favorite-service-mesh
|
||||
value: istio
|
||||
filters:
|
||||
- type: RequestHeaderModifier
|
||||
requestHeaderModifier:
|
||||
add:
|
||||
- name: hello
|
||||
value: world
|
||||
backendRefs:
|
||||
- name: reviews-v2
|
||||
port: 9080
|
||||
- backendRefs:
|
||||
- name: reviews-v1
|
||||
port: 9080
|
||||
{{< /text >}}
|
||||
|
||||
将其分解后,我们得到几个部分:
|
||||
* 首先,我们确定应该匹配哪些路由。通过将我们的路由附加到 `reviews` 服务,
|
||||
我们会将此路由配置应用于最初针对 `reviews` 的所有请求。
|
||||
* 接下来,`matches` 配置选择该路由应处理的流量标准。
|
||||
* 我们可以选择修改请求。在这里,我们添加一个标题。
|
||||
* 最后,我们选择请求的目标。在此示例中,我们在应用程序的两个版本之间进行选择。
|
||||
|
||||
有关更多详细信息,请参阅 [Istio 的流量路由内部结构](/zh/docs/ops/configuration/traffic-management/traffic-routing/) 和
|
||||
[Gateway API 的服务文档](https://gateway-api.sigs.k8s.io/mesh/service-facets/)。
|
||||
|
||||
## 我应该使用哪个 API? {#which-api-should-i-use}
|
||||
|
||||
由于职责(和名称!)重叠,选择要使用的 API 可能会有点混乱。
|
||||
|
||||
以下是详细分析:
|
||||
|
||||
| API 名称 | 对象类型 | 状态 | 推荐 |
|
||||
|--------------|---------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------|----------------------------------------------------------------------------|
|
||||
| Gateway API | [HTTPRoute](https://gateway-api.sigs.k8s.io/api-types/httproute/), [Gateway](https://gateway-api.sigs.k8s.io/api-types/gateway/), ... | Gateway API v1.0(2023)稳定 | 用于新部署,特别是 [Ambient 模式](/zh/docs/ambient/) |
|
||||
| Istio API | [Virtual Service](/zh/docs/reference/config/networking/virtual-service/), [Gateway](/zh/docs/reference/config/networking/gateway/) | Istio 1.22(2024)中达到 `v1` | 用于现存部署或需要高级功能的地方 |
|
||||
| Ingress API | [Ingress](https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress) | 在 Kubernetes v1.19(2020)中稳定 | 仅用于旧部署 |
|
||||
|
||||
鉴于上述情况,您可能想知道为什么 Istio API 同时[被升级为 `v1`](/zh/blog/2024/v1-apis)?
|
||||
这是对 API 的**稳定性**进行准确分类努力的一部分。
|
||||
虽然我们将 Gateway API 视为流量路由 API 的未来(和现在!),
|
||||
但我们现有的 API 将长期保留,并具有完全兼容性。这印证了 Kubernetes
|
||||
使用 [`Ingress`](https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/) 的方法,
|
||||
该方法被提升到 `v1`,同时将未来的工作导向 Gateway API。
|
||||
|
||||
## 社区 {#community}
|
||||
|
||||
这种稳定性毕业代表了整个项目无数个小时的工作和协作的顶峰。
|
||||
看看 API 涉及的[组织列表](https://gateway-api.sigs.k8s.io/implementations/)并回想一下我们已经走了多远,
|
||||
真是令人难以置信。
|
||||
|
||||
特别感谢我的[共同领导者](https://gateway-api.sigs.k8s.io/mesh/gamma/):
|
||||
Flynn、Keith Mattix 和 Mike Morris,以及无数其他相关人员。
|
||||
|
||||
有兴趣参与,或者只是提供反馈吗?查看 Istio 的[社区页面](/zh/get-involved/)或
|
||||
Gateway API [贡献指南](https://gateway-api.sigs.k8s.io/contributing/)!
|
||||
Loading…
Reference in New Issue