From 786422bb5fa45f9653b3b9f0b110782ae8dcce10 Mon Sep 17 00:00:00 2001 From: howieyuen Date: Tue, 19 Jan 2021 15:59:49 +0800 Subject: [PATCH] resync content/zh/docs/concepts/services-networking/endpoint-slices.md --- .../services-networking/endpoint-slices.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/content/zh/docs/concepts/services-networking/endpoint-slices.md b/content/zh/docs/concepts/services-networking/endpoint-slices.md index f83b8154a9..c4c80b4e27 100644 --- a/content/zh/docs/concepts/services-networking/endpoint-slices.md +++ b/content/zh/docs/concepts/services-networking/endpoint-slices.md @@ -145,9 +145,99 @@ EndpointSlice 支持三种地址类型: * IPv6 * FQDN (完全合格的域名) + +### 状况 + +EndpointSlice API 存储了可能对使用者有用的、有关端点的状况。 +这三个状况分别是 `ready`、`serving` 和 `terminating`。 + + + +#### Ready(就绪) + +`ready` 状况是映射 Pod 的 `Ready` 状况的。 +处于运行中的 Pod,它的 `Ready` 状况被设置为 `True`,应该将此 EndpointSlice 状况也设置为 `true`。 +出于兼容性原因,当 Pod 处于终止过程中,`ready` 永远不会为 `true`。 +消费者应参考 `serving` 状况来检查处于终止中的 Pod 的就绪情况。 +该规则的唯一例外是将 `spec.publishNotReadyAddresses` 设置为 `true` 的服务。 +这些服务(Service)的端点将始终将 `ready` 状况设置为 `true`。 + + +#### Serving(服务中) + +{{< feature-state for_k8s_version="v1.20" state="alpha" >}} + +`serving` 状况与 `ready` 状况相同,不同之处在于它不考虑终止状态。 +如果 EndpointSlice API 的使用者关心 Pod 终止时的就绪情况,就应检查此状况。 + +{{< note >}} + +尽管 `serving` 与 `ready` 几乎相同,但是它是为防止破坏 `ready` 的现有含义而增加的。 +如果对于处于终止中的端点,`ready` 可能是 `true`,那么对于现有的客户端来说可能是有些意外的, +因为从始至终,Endpoints 或 EndpointSlice API 从未包含处于终止中的端点。 +出于这个原因,`ready` 对于处于终止中的端点 _总是_ `false`, +并且在 v1.20 中添加了新的状况 `serving`,以便客户端可以独立于 `ready` +的现有语义来跟踪处于终止中的 Pod 的就绪情况。 +{{< /note >}} + + +#### Terminating(终止中) + +{{< feature-state for_k8s_version="v1.20" state="alpha" >}} + +`Terminating` 是表示端点是否处于终止中的状况。 +对于 Pod 来说,这是设置了删除时间戳的 Pod。 + + ### 拓扑信息 {#topology} +{{< feature-state for_k8s_version="v1.20" state="deprecated" >}} + +{{< note >}} +EndpointSlices 中的 topology 字段已被弃用,并将在以后的版本中删除。 +将使用新的 `nodeName` 字段代替在 topology 中设置 `kubernetes.io/hostname`。 +可以确定的是,其他覆盖区和域的拓扑字段用 EndpointSlice 标签来表达更合适, +该标签将应用于 EndpointSlice 内的所有端点。 +{{< /note >}} + EndpointSlice 中的每个端点都可以包含一定的拓扑信息。 这一信息用来标明端点的位置,包含对应节点、可用区、区域的信息。 当这些值可用时,控制面会为 EndpointSlice 设置如下拓扑标签: