From b4aab7e4f66869a5372d01c4197235bcb867ec6e Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 9 Aug 2022 21:29:25 +0800 Subject: [PATCH] [zh-cn] Resync endpoint-slices.md --- .../services-networking/endpoint-slices.md | 65 +++++++++---------- 1 file changed, 31 insertions(+), 34 deletions(-) diff --git a/content/zh-cn/docs/concepts/services-networking/endpoint-slices.md b/content/zh-cn/docs/concepts/services-networking/endpoint-slices.md index b3f0949298..7f5eb39dc3 100644 --- a/content/zh-cn/docs/concepts/services-networking/endpoint-slices.md +++ b/content/zh-cn/docs/concepts/services-networking/endpoint-slices.md @@ -21,8 +21,8 @@ _EndpointSlices_ provide a simple way to track network endpoints within a Kubernetes cluster. They offer a more scalable and extensible alternative to Endpoints. --> -_端点切片(EndpointSlices)_ 提供了一种简单的方法来跟踪 Kubernetes 集群中的网络端点 -(network endpoints)。它们为 Endpoints 提供了一种可伸缩和可拓展的替代方案。 +**端点切片(EndpointSlices)** 提供了一种简单的方法来跟踪 Kubernetes 集群中的网络端点(network endpoints)。 +它们为 Endpoints 提供了一种可扩缩和可拓展的替代方案。 @@ -39,10 +39,9 @@ network endpoints. --> ## 动机 {#motivation} -Endpoints API 提供了在 Kubernetes 跟踪网络端点的一种简单而直接的方法。 -不幸的是,随着 Kubernetes 集群和 {{< glossary_tooltip text="服务" term_id="service" >}} -逐渐开始为更多的后端 Pods 处理和发送请求,原来的 API 的局限性变得越来越明显。 -最重要的是那些因为要处理大量网络端点而带来的挑战。 +Endpoints API 提供了在 Kubernetes 中跟踪网络端点的一种简单而直接的方法。遗憾的是,随着 Kubernetes +集群和{{< glossary_tooltip text="服务" term_id="service" >}}逐渐开始为更多的后端 Pod 处理和发送请求, +原来的 API 的局限性变得越来越明显。最重要的是那些因为要处理大量网络端点而带来的挑战。 -## Endpoint Slice 资源 {#endpointslice-resource} +## EndpointSlice 资源 {#endpointslice-resource} 在 Kubernetes 中,`EndpointSlice` 包含对一组网络端点的引用。 -指定选择器后控制面会自动为设置了 {{< glossary_tooltip text="选择算符" term_id="selector" >}} -的 Kubernetes Service 创建 EndpointSlice。 +控制面会自动为设置了{{< glossary_tooltip text="选择算符" term_id="selector" >}}的 +Kubernetes Service 创建 EndpointSlice。 这些 EndpointSlice 将包含对与 Service 选择算符匹配的所有 Pod 的引用。 EndpointSlice 通过唯一的协议、端口号和 Service 名称将网络端点组织在一起。 EndpointSlice 的名称必须是合法的 @@ -100,7 +99,7 @@ ports: port: 80 endpoints: - addresses: - - "10.1.2.3" + - "10.1.2.3" conditions: ready: true hostname: pod-1 @@ -111,7 +110,7 @@ endpoints: -## 地址类型 +### 地址类型 EndpointSlice 支持三种地址类型: @@ -157,7 +156,6 @@ The three conditions are `ready`, `serving`, and `terminating`. EndpointSlice API 存储了可能对使用者有用的、有关端点的状况。 这三个状况分别是 `ready`、`serving` 和 `terminating`。 - #### Serving(服务中) -{{< feature-state for_k8s_version="v1.20" state="alpha" >}} +{{< feature-state for_k8s_version="v1.22" state="beta" >}} `serving` 状况与 `ready` 状况相同,不同之处在于它不考虑终止状态。 如果 EndpointSlice API 的使用者关心 Pod 终止时的就绪情况,就应检查此状况。 @@ -205,7 +203,7 @@ for terminating pods independent of the existing semantics for `ready`. 尽管 `serving` 与 `ready` 几乎相同,但是它是为防止破坏 `ready` 的现有含义而增加的。 如果对于处于终止中的端点,`ready` 可能是 `true`,那么对于现有的客户端来说可能是有些意外的, 因为从始至终,Endpoints 或 EndpointSlice API 从未包含处于终止中的端点。 -出于这个原因,`ready` 对于处于终止中的端点 _总是_ `false`, +出于这个原因,`ready` 对于处于终止中的端点 **总是** `false`, 并且在 v1.20 中添加了新的状况 `serving`,以便客户端可以独立于 `ready` 的现有语义来跟踪处于终止中的 Pod 的就绪情况。 {{< /note >}} @@ -213,19 +211,18 @@ for terminating pods independent of the existing semantics for `ready`. #### Terminating(终止中) -{{< feature-state for_k8s_version="v1.20" state="alpha" >}} +{{< feature-state for_k8s_version="v1.22" state="beta" >}} `Terminating` 是表示端点是否处于终止中的状况。 对于 Pod 来说,这是设置了删除时间戳的 Pod。 - ### 管理 {#management} -通常,控制面(尤其是端点切片的 {{< glossary_tooltip text="控制器" term_id="controller" >}}) +通常,控制面(尤其是端点切片的{{< glossary_tooltip text="控制器" term_id="controller" >}}) 会创建和管理 EndpointSlice 对象。EndpointSlice 对象还有一些其他使用场景, 例如作为服务网格(Service Mesh)的实现。 这些场景都会导致有其他实体或者控制器负责管理额外的 EndpointSlice 集合。 @@ -296,10 +293,10 @@ The endpoint slice controller sets `endpointslice-controller.k8s.io` as the valu for this label on all EndpointSlices it manages. Other entities managing EndpointSlices should also set a unique value for this label. --> -为了确保多个实体可以管理 EndpointSlice 而且不会相互产生干扰,Kubernetes 定义了 -{{< glossary_tooltip term_id="label" text="标签" >}} -`endpointslice.kubernetes.io/managed-by`,用来标明哪个实体在管理某个 -EndpointSlice。端点切片控制器会在自己所管理的所有 EndpointSlice 上将该标签值设置为 +为了确保多个实体可以管理 EndpointSlice 而且不会相互产生干扰, +Kubernetes 定义了{{< glossary_tooltip term_id="label" text="标签" >}} +`endpointslice.kubernetes.io/managed-by`,用来标明哪个实体在管理某个 EndpointSlice。 +端点切片控制器会在自己所管理的所有 EndpointSlice 上将该标签值设置为 `endpointslice-controller.k8s.io`。 管理 EndpointSlice 的其他实体也应该为此标签设置一个唯一值。 @@ -355,8 +352,8 @@ will occur if an Endpoints resource has multiple subsets or includes endpoints with multiple IP families (IPv4 and IPv6). A maximum of 1000 addresses per subset will be mirrored to EndpointSlices. --> -每个 Endpoints 资源可能会被翻译到多个 EndpointSlices 中去。 -当 Endpoints 资源中包含多个子网或者包含多个 IP 地址族(IPv4 和 IPv6)的端点时, +每个 Endpoints 资源可能会被转译到多个 EndpointSlices 中去。 +当 Endpoints 资源中包含多个子网或者包含多个 IP 协议族(IPv4 和 IPv6)的端点时, 就有可能发生这种状况。 每个子网最多有 1000 个地址会被镜像到 EndpointSlice 中。