Skip to content

Commit 0499288

Browse files
authored
Merge pull request #35819 from windsonsea/endslice
[zh-cn] Resync endpoint-slices.md
2 parents 1827f44 + b4aab7e commit 0499288

File tree

1 file changed

+31
-34
lines changed

1 file changed

+31
-34
lines changed

content/zh-cn/docs/concepts/services-networking/endpoint-slices.md

Lines changed: 31 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ _EndpointSlices_ provide a simple way to track network endpoints within a
2121
Kubernetes cluster. They offer a more scalable and extensible alternative to
2222
Endpoints.
2323
-->
24-
_端点切片(EndpointSlices)_ 提供了一种简单的方法来跟踪 Kubernetes 集群中的网络端点
25-
(network endpoints)。它们为 Endpoints 提供了一种可伸缩和可拓展的替代方案
24+
**端点切片(EndpointSlices)** 提供了一种简单的方法来跟踪 Kubernetes 集群中的网络端点(network endpoints)。
25+
它们为 Endpoints 提供了一种可扩缩和可拓展的替代方案
2626

2727
<!-- body -->
2828

@@ -39,10 +39,9 @@ network endpoints.
3939
-->
4040
## 动机 {#motivation}
4141

42-
Endpoints API 提供了在 Kubernetes 跟踪网络端点的一种简单而直接的方法。
43-
不幸的是,随着 Kubernetes 集群和 {{< glossary_tooltip text="服务" term_id="service" >}}
44-
逐渐开始为更多的后端 Pods 处理和发送请求,原来的 API 的局限性变得越来越明显。
45-
最重要的是那些因为要处理大量网络端点而带来的挑战。
42+
Endpoints API 提供了在 Kubernetes 中跟踪网络端点的一种简单而直接的方法。遗憾的是,随着 Kubernetes
43+
集群和{{< glossary_tooltip text="服务" term_id="service" >}}逐渐开始为更多的后端 Pod 处理和发送请求,
44+
原来的 API 的局限性变得越来越明显。最重要的是那些因为要处理大量网络端点而带来的挑战。
4645

4746
<!--
4847
Since all network endpoints for a Service were stored in a single Endpoints
@@ -59,26 +58,26 @@ EndpointSlice 能够帮助你缓解这一问题,
5958
还能为一些诸如拓扑路由这类的额外功能提供一个可扩展的平台。
6059

6160
<!--
62-
## Endpoint Slice resources {#endpointslice-resource}
61+
## EndpointSlice resources {#endpointslice-resource}
6362
6463
In Kubernetes, an EndpointSlice contains references to a set of network
6564
endpoints. The control plane automatically creates EndpointSlices
6665
for any Kubernetes Service that has a {{< glossary_tooltip text="selector"
6766
term_id="selector" >}} specified. These EndpointSlices include
68-
references to any Pods that match the Service selector. EndpointSlices group
67+
references to all the Pods that match the Service selector. EndpointSlices group
6968
network endpoints together by unique combinations of protocol, port number, and
70-
Service name.
69+
Service name.
7170
The name of a EndpointSlice object must be a valid
7271
[DNS subdomain name](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names).
7372
7473
As an example, here's a sample EndpointSlice resource for the `example`
7574
Kubernetes Service.
7675
-->
77-
## Endpoint Slice 资源 {#endpointslice-resource}
76+
## EndpointSlice 资源 {#endpointslice-resource}
7877

7978
在 Kubernetes 中,`EndpointSlice` 包含对一组网络端点的引用。
80-
指定选择器后控制面会自动为设置了 {{< glossary_tooltip text="选择算符" term_id="selector" >}}
81-
Kubernetes Service 创建 EndpointSlice。
79+
控制面会自动为设置了{{< glossary_tooltip text="选择算符" term_id="selector" >}}
80+
Kubernetes Service 创建 EndpointSlice。
8281
这些 EndpointSlice 将包含对与 Service 选择算符匹配的所有 Pod 的引用。
8382
EndpointSlice 通过唯一的协议、端口号和 Service 名称将网络端点组织在一起。
8483
EndpointSlice 的名称必须是合法的
@@ -100,7 +99,7 @@ ports:
10099
port: 80
101100
endpoints:
102101
- addresses:
103-
- "10.1.2.3"
102+
- "10.1.2.3"
104103
conditions:
105104
ready: true
106105
hostname: pod-1
@@ -111,7 +110,7 @@ endpoints:
111110
<!--
112111
By default, the control plane creates and manages EndpointSlices to have no
113112
more than 100 endpoints each. You can configure this with the
114-
`-max-endpoints-per-slice`
113+
`--max-endpoints-per-slice`
115114
{{< glossary_tooltip text="kube-controller-manager" term_id="kube-controller-manager" >}}
116115
flag, up to a maximum of 1000.
117116

@@ -125,20 +124,20 @@ improvement for services with large numbers of endpoints.
125124
的 `--max-endpoints-per-slice` 标志设置此值,最大值为 1000。
126125

127126
当涉及如何路由内部流量时,EndpointSlice 可以充当
128-
{{< glossary_tooltip term_id="kube-proxy" text="kube-proxy" >}}
127+
{{< glossary_tooltip term_id="kube-proxy" text="kube-proxy" >}}
129128
的决策依据。
130129
启用该功能后,在服务的端点数量庞大时会有可观的性能提升。
131130

132131
<!--
133-
## Address Types
132+
### Address types
134133

135134
EndpointSlices support three address types:
136135

137136
* IPv4
138137
* IPv6
139138
* FQDN (Fully Qualified Domain Name)
140139
-->
141-
## 地址类型
140+
### 地址类型
142141

143142
EndpointSlice 支持三种地址类型:
144143

@@ -157,7 +156,6 @@ The three conditions are `ready`, `serving`, and `terminating`.
157156
EndpointSlice API 存储了可能对使用者有用的、有关端点的状况。
158157
这三个状况分别是 `ready`、`serving` 和 `terminating`。
159158

160-
161159
<!--
162160
#### Ready
163161

@@ -171,7 +169,7 @@ Services will always have the `ready` condition set to `true`.
171169
#### Ready(就绪)
172170

173171
`ready` 状况是映射 Pod 的 `Ready` 状况的。
174-
处于运行中的 Pod,它的 `Ready` 状况被设置为 `True`,应该将此 EndpointSlice 状况也设置为 `true`。
172+
对于处于运行中的 Pod,它的 `Ready` 状况被设置为 `True`,应该将此 EndpointSlice 状况也设置为 `true`。
175173
出于兼容性原因,当 Pod 处于终止过程中,`ready` 永远不会为 `true`。
176174
消费者应参考 `serving` 状况来检查处于终止中的 Pod 的就绪情况。
177175
该规则的唯一例外是将 `spec.publishNotReadyAddresses` 设置为 `true` 的 Service。
@@ -180,15 +178,15 @@ Services will always have the `ready` condition set to `true`.
180178
<!--
181179
#### Serving
182180

183-
{{< feature-state for_k8s_version="v1.20" state="alpha" >}}
181+
{{< feature-state for_k8s_version="v1.22" state="beta" >}}
184182

185183
`serving` is identical to the `ready` condition, except it does not account for terminating states.
186184
Consumers of the EndpointSlice API should check this condition if they care about pod readiness while
187185
the pod is also terminating.
188186
-->
189187
#### Serving(服务中)
190188

191-
{{< feature-state for_k8s_version="v1.20" state="alpha" >}}
189+
{{< feature-state for_k8s_version="v1.22" state="beta" >}}
192190

193191
`serving` 状况与 `ready` 状况相同,不同之处在于它不考虑终止状态。
194192
如果 EndpointSlice API 的使用者关心 Pod 终止时的就绪情况,就应检查此状况。
@@ -205,27 +203,26 @@ for terminating pods independent of the existing semantics for `ready`.
205203
尽管 `serving` 与 `ready` 几乎相同,但是它是为防止破坏 `ready` 的现有含义而增加的。
206204
如果对于处于终止中的端点,`ready` 可能是 `true`,那么对于现有的客户端来说可能是有些意外的,
207205
因为从始至终,Endpoints 或 EndpointSlice API 从未包含处于终止中的端点。
208-
出于这个原因,`ready` 对于处于终止中的端点 _总是_ `false`,
206+
出于这个原因,`ready` 对于处于终止中的端点 **总是** `false`,
209207
并且在 v1.20 中添加了新的状况 `serving`,以便客户端可以独立于 `ready`
210208
的现有语义来跟踪处于终止中的 Pod 的就绪情况。
211209
{{< /note >}}
212210

213211
<!--
214212
#### Terminating
215213

216-
{{< feature-state for_k8s_version="v1.20" state="alpha" >}}
214+
{{< feature-state for_k8s_version="v1.22" state="beta" >}}
217215

218216
`Terminating` is a condition that indicates whether an endpoint is terminating.
219217
For pods, this is any pod that has a deletion timestamp set.
220218
-->
221219
#### Terminating(终止中)
222220

223-
{{< feature-state for_k8s_version="v1.20" state="alpha" >}}
221+
{{< feature-state for_k8s_version="v1.22" state="beta" >}}
224222

225223
`Terminating` 是表示端点是否处于终止中的状况。
226224
对于 Pod 来说,这是设置了删除时间戳的 Pod。
227225

228-
229226
<!--
230227
### Topology information {#topology}
231228

@@ -257,8 +254,8 @@ the dedicated fields `nodeName` and `zone`.
257254

258255
<!--
259256
Setting arbitrary topology fields on the `endpoint` field of an `EndpointSlice`
260-
resource has been deprecated and is not supported in the v1 API.
261-
Instead, the v1 API supports setting individual `nodeName` and `zone` fields.
257+
resource has been deprecated and is not supported in the v1 API.
258+
Instead, the v1 API supports setting individual `nodeName` and `zone` fields.
262259
These fields are automatically translated between API versions. For example, the
263260
value of the `"topology.kubernetes.io/zone"` key in the `topology` field in
264261
the v1beta1 API is accessible as the `zone` field in the v1 API.
@@ -281,7 +278,7 @@ entities or controllers managing additional sets of EndpointSlices.
281278
-->
282279
### 管理 {#management}
283280

284-
通常,控制面(尤其是端点切片的 {{< glossary_tooltip text="控制器" term_id="controller" >}})
281+
通常,控制面(尤其是端点切片的{{< glossary_tooltip text="控制器" term_id="controller" >}})
285282
会创建和管理 EndpointSlice 对象。EndpointSlice 对象还有一些其他使用场景,
286283
例如作为服务网格(Service Mesh)的实现。
287284
这些场景都会导致有其他实体或者控制器负责管理额外的 EndpointSlice 集合。
@@ -296,10 +293,10 @@ The endpoint slice controller sets `endpointslice-controller.k8s.io` as the valu
296293
for this label on all EndpointSlices it manages. Other entities managing
297294
EndpointSlices should also set a unique value for this label.
298295
-->
299-
为了确保多个实体可以管理 EndpointSlice 而且不会相互产生干扰,Kubernetes 定义了
300-
{{< glossary_tooltip term_id="label" text="标签" >}}
301-
`endpointslice.kubernetes.io/managed-by`,用来标明哪个实体在管理某个
302-
EndpointSlice。端点切片控制器会在自己所管理的所有 EndpointSlice 上将该标签值设置为
296+
为了确保多个实体可以管理 EndpointSlice 而且不会相互产生干扰,
297+
Kubernetes 定义了{{< glossary_tooltip term_id="label" text="标签" >}}
298+
`endpointslice.kubernetes.io/managed-by`,用来标明哪个实体在管理某个 EndpointSlice。
299+
端点切片控制器会在自己所管理的所有 EndpointSlice 上将该标签值设置为
303300
`endpointslice-controller.k8s.io`
304301
管理 EndpointSlice 的其他实体也应该为此标签设置一个唯一值。
305302

@@ -355,8 +352,8 @@ will occur if an Endpoints resource has multiple subsets or includes endpoints
355352
with multiple IP families (IPv4 and IPv6). A maximum of 1000 addresses per
356353
subset will be mirrored to EndpointSlices.
357354
-->
358-
每个 Endpoints 资源可能会被翻译到多个 EndpointSlices 中去。
359-
当 Endpoints 资源中包含多个子网或者包含多个 IP 地址族(IPv4 和 IPv6)的端点时,
355+
每个 Endpoints 资源可能会被转译到多个 EndpointSlices 中去。
356+
当 Endpoints 资源中包含多个子网或者包含多个 IP 协议族(IPv4 和 IPv6)的端点时,
360357
就有可能发生这种状况。
361358
每个子网最多有 1000 个地址会被镜像到 EndpointSlice 中。
362359

0 commit comments

Comments
 (0)