Skip to content

Commit 3c175c8

Browse files
authored
Merge pull request #34890 from windsonsea/stateful
[zh-cn] updated controllers/statefulset.md
2 parents a47e530 + 3b74fd7 commit 3c175c8

File tree

1 file changed

+33
-32
lines changed

1 file changed

+33
-32
lines changed

content/zh-cn/docs/concepts/workloads/controllers/statefulset.md

Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
2-
title: StatefulSets
2+
title: StatefulSet
33
content_type: concept
44
weight: 30
55
---
66

77
<!--
88
title: StatefulSets
99
content_type: concept
10-
weight: 40
10+
weight: 30
1111
-->
1212

1313
<!-- overview -->
@@ -27,9 +27,9 @@ StatefulSet 是用来管理有状态应用的工作负载 API 对象。
2727
StatefulSets are valuable for applications that require one or more of the
2828
following.
2929
-->
30-
## 使用 StatefulSets {#using-statefulsets}
30+
## 使用 StatefulSet {#using-statefulsets}
3131

32-
StatefulSets 对于需要满足以下一个或多个需求的应用程序很有价值:
32+
StatefulSet 对于需要满足以下一个或多个需求的应用程序很有价值:
3333

3434
<!--
3535
* Stable, unique network identifiers.
@@ -39,7 +39,7 @@ StatefulSets 对于需要满足以下一个或多个需求的应用程序很有
3939
-->
4040
* 稳定的、唯一的网络标识符。
4141
* 稳定的、持久的存储。
42-
* 有序的、优雅的部署和缩放
42+
* 有序的、优雅的部署和扩缩
4343
* 有序的、自动的滚动更新。
4444

4545
<!--
@@ -51,8 +51,8 @@ that provides a set of stateless replicas.
5151
[ReplicaSet](/docs/concepts/workloads/controllers/replicaset/) may be better suited to your stateless needs.
5252
-->
5353
在上面描述中,“稳定的”意味着 Pod 调度或重调度的整个过程是有持久性的。
54-
如果应用程序不需要任何稳定的标识符或有序的部署、删除或伸缩,则应该使用
55-
由一组无状态的副本控制器提供的工作负载来部署应用程序,比如
54+
如果应用程序不需要任何稳定的标识符或有序的部署、删除或扩缩,
55+
则应该使用由一组无状态的副本控制器提供的工作负载来部署应用程序,比如
5656
[Deployment](/zh-cn/docs/concepts/workloads/controllers/deployment/) 或者
5757
[ReplicaSet](/zh-cn/docs/concepts/workloads/controllers/replicaset/)
5858
可能更适用于你的无状态应用部署需要。
@@ -75,13 +75,13 @@ that provides a set of stateless replicas.
7575
* 给定 Pod 的存储必须由
7676
[PersistentVolume 驱动](https://github.com/kubernetes/examples/tree/master/staging/persistent-volume-provisioning/README.md)
7777
基于所请求的 `storage class` 来提供,或者由管理员预先提供。
78-
* 删除或者收缩 StatefulSet 并*不会*删除它关联的存储卷。
78+
* 删除或者扩缩 StatefulSet 并**不会**删除它关联的存储卷。
7979
这样做是为了保证数据安全,它通常比自动清除 StatefulSet 所有相关的资源更有价值。
8080
* StatefulSet 当前需要[无头服务](/zh-cn/docs/concepts/services-networking/service/#headless-services)
8181
来负责 Pod 的网络标识。你需要负责创建此服务。
82-
* 当删除 StatefulSets 时,StatefulSet 不提供任何终止 Pod 的保证。
83-
为了实现 StatefulSet 中的 Pod 可以有序地且体面地终止,可以在删除之前将 StatefulSet
84-
缩放为 0。
82+
* 当删除一个 StatefulSet 时,StatefulSet 不提供任何终止 Pod 的保证。
83+
为了实现 StatefulSet 中的 Pod 可以有序且体面地终止,可以在删除之前将 StatefulSet
84+
缩容到 0。
8585
* 在默认 [Pod 管理策略](#pod-management-policies)(`OrderedReady`) 时使用
8686
[滚动更新](#rolling-updates),可能进入需要[人工干预](#forced-rollback)
8787
才能修复的损坏状态。
@@ -176,14 +176,14 @@ You must set the `.spec.selector` field of a StatefulSet to match the labels of
176176
-->
177177
你必须设置 StatefulSet 的 `.spec.selector` 字段,使之匹配其在
178178
`.spec.template.metadata.labels` 中设置的标签。
179-
未指定匹配的 Pod 选择器将在创建 StatefulSet 期间导致验证错误。
179+
未指定匹配的 Pod 选择算符将在创建 StatefulSet 期间导致验证错误。
180180

181181
<!--
182182
### Volume Claim Templates
183183

184184
You can set the `.spec.volumeClaimTemplates` which can provide stable storage using [PersistentVolumes](/docs/concepts/storage/persistent-volumes/) provisioned by a PersistentVolume Provisioner.
185185
-->
186-
### 卷申领模版 {#volume-claim-templates}
186+
### 卷申领模板 {#volume-claim-templates}
187187

188188
你可以设置 `.spec.volumeClaimTemplates`,
189189
它可以使用 PersistentVolume 制备程序所准备的
@@ -219,7 +219,7 @@ regardless of which node it's (re)scheduled on.
219219
## Pod 标识 {#pod-identity}
220220

221221
StatefulSet Pod 具有唯一的标识,该标识包括顺序标识、稳定的网络标识和稳定的存储。
222-
该标识和 Pod 是绑定的,不管它被调度在哪个节点上
222+
该标识和 Pod 是绑定的,与该 Pod 调度到哪个节点上无关
223223

224224
<!--
225225
### Ordinal Index
@@ -229,8 +229,8 @@ assigned an integer ordinal, from 0 up through N-1, that is unique over the Set.
229229
-->
230230
### 有序索引 {#ordinal-index}
231231

232-
对于具有 N 个副本的 StatefulSet,StatefulSet 中的每个 Pod 将被分配一个整数序号,
233-
从 0 到 N-1,该序号在 StatefulSet 上是唯一的。
232+
对于具有 N 个副本的 StatefulSet,StatefulSet 中的每个 Pod 将被分配一个从 0 到 N-1
233+
的整数序号,该序号在此 StatefulSet 上是唯一的。
234234

235235
<!--
236236
### Stable Network ID
@@ -254,7 +254,7 @@ StatefulSet 中的每个 Pod 根据 StatefulSet 的名称和 Pod 的序号派生
254254
上例将会创建三个名称分别为 `web-0、web-1、web-2` 的 Pod。
255255
StatefulSet 可以使用 [无头服务](/zh-cn/docs/concepts/services-networking/service/#headless-services)
256256
控制它的 Pod 的网络域。管理域的这个服务的格式为:
257-
`$(服务名称).$(命名空间).svc.cluster.local`,其中 `cluster.local` 是集群域。
257+
`$(服务名称).$(名字空间).svc.cluster.local`,其中 `cluster.local` 是集群域。
258258
一旦每个 Pod 创建成功,就会得到一个匹配的 DNS 子域,格式为:
259259
`$(pod 名称).$(所属服务的 DNS 域名)`,其中所属服务由 StatefulSet 的 `serviceName` 域来设定。
260260

@@ -281,7 +281,7 @@ responsible for the network identity of the pods.
281281
负缓存 (在 DNS 中较为常见) 意味着之前失败的查询结果会被记录和重用至少若干秒钟,
282282
即使 Pod 已经正常运行了也是如此。
283283

284-
如果需要在 Pod 被创建之后及时发现它们,有以下选项
284+
如果需要在 Pod 被创建之后及时发现它们,可使用以下选项
285285

286286
- 直接查询 Kubernetes API(比如,利用 watch 机制)而不是依赖于 DNS 查询
287287
- 缩短 Kubernetes DNS 驱动的缓存时长(通常这意味着修改 CoreDNS 的 ConfigMap,目前缓存时长为 30 秒)
@@ -363,8 +363,8 @@ the StatefulSet.
363363

364364
* 对于包含 N 个 副本的 StatefulSet,当部署 Pod 时,它们是依次创建的,顺序为 `0..N-1`。
365365
* 当删除 Pod 时,它们是逆序终止的,顺序为 `N-1..0`。
366-
* 在将缩放操作应用到 Pod 之前,它前面的所有 Pod 必须是 Running 和 Ready 状态。
367-
* Pod 终止之前,所有的继任者必须完全关闭。
366+
* 在将扩缩操作应用到 Pod 之前,它前面的所有 Pod 必须是 Running 和 Ready 状态。
367+
* 在一个 Pod 终止之前,所有的继任者必须完全关闭。
368368

369369
<!--
370370
The StatefulSet should not specify a `pod.Spec.TerminationGracePeriodSeconds` of 0. This practice is unsafe and strongly discouraged. For further explanation, please refer to [force deleting StatefulSet Pods](/docs/tasks/run-application/force-delete-stateful-set-pod/).
@@ -395,7 +395,7 @@ is fully shutdown and deleted. If web-0 were to fail after web-2 has been termin
395395
is completely shutdown, but prior to web-1's termination, web-1 would not be terminated
396396
until web-0 is Running and Ready.
397397
-->
398-
如果用户想将示例中的 StatefulSet 收缩为 `replicas=1`,首先被终止的是 web-2。
398+
如果用户想将示例中的 StatefulSet 缩放为 `replicas=1`,首先被终止的是 web-2。
399399
在 web-2 没有被完全停止和删除前,web-1 不会被终止。
400400
当 web-2 已被终止和删除、web-1 尚未被终止,如果在此期间发生 web-0 运行失败,
401401
那么就不会终止 web-1,必须等到 web-0 进入 Running 和 Ready 状态后才会终止 web-1。
@@ -435,7 +435,7 @@ Pod. This option only affects the behavior for scaling operations. Updates are n
435435

436436
`Parallel` Pod 管理让 StatefulSet 控制器并行的启动或终止所有的 Pod,
437437
启动或者终止其他 Pod 前,无需等待 Pod 进入 Running 和 ready 或者完全停止状态。
438-
这个选项只会影响伸缩操作的行为,更新则不会被影响。
438+
这个选项只会影响扩缩操作的行为,更新则不会被影响。
439439

440440
<!--
441441
## Update Strategies
@@ -487,8 +487,9 @@ amount of time after the Pod turns ready, before moving on.
487487
StatefulSet 控制器会删除和重建 StatefulSet 中的每个 Pod。
488488
它将按照与 Pod 终止相同的顺序(从最大序号到最小序号)进行,每次更新一个 Pod。
489489

490-
Kubernetes 控制面会等到被更新的 Pod 进入 Running 和 Ready 状态,然后再更新其前身。
491-
如果你设置了 `.spec.minReadySeconds`(查看[最短就绪秒数](#minimum-ready-seconds)),控制面在 Pod 就绪后会额外等待一定的时间再执行下一步。
490+
Kubernetes 控制平面会等到被更新的 Pod 进入 Running 和 Ready 状态,然后再更新其前身。
491+
如果你设置了 `.spec.minReadySeconds`(查看[最短就绪秒数](#minimum-ready-seconds)),
492+
控制平面在 Pod 就绪后会额外等待一定的时间再执行下一步。
492493

493494
<!--
494495
### Partitioned rolling updates {#partitions}
@@ -509,9 +510,9 @@ update, roll out a canary, or perform a phased roll out.
509510
更新策略可以实现分区。
510511
如果声明了一个分区,当 StatefulSet 的 `.spec.template` 被更新时,
511512
所有序号大于等于该分区序号的 Pod 都会被更新。
512-
所有序号小于该分区序号的 Pod 都不会被更新,并且,即使他们被删除也会依据之前的版本进行重建
513+
所有序号小于该分区序号的 Pod 都不会被更新,并且,即使它们被删除也会依据之前的版本进行重建
513514
如果 StatefulSet 的 `.spec.updateStrategy.rollingUpdate.partition` 大于它的
514-
`.spec.replicas`对它的 `.spec.template` 的更新将不会传递到它的 Pod。
515+
`.spec.replicas`则对它的 `.spec.template` 的更新将不会传递到它的 Pod。
515516
在大多数情况下,你不需要使用分区,但如果你希望进行阶段更新、执行金丝雀或执行
516517
分阶段上线,则这些分区会非常有用。
517518

@@ -572,8 +573,8 @@ StatefulSet will stop the rollout and wait.
572573
在默认 [Pod 管理策略](#pod-management-policies)(`OrderedReady`) 下使用
573574
[滚动更新](#rolling-updates),可能进入需要人工干预才能修复的损坏状态。
574575

575-
如果更新后 Pod 模板配置进入无法运行或就绪的状态(例如,由于错误的二进制文件
576-
或应用程序级配置错误),StatefulSet 将停止回滚并等待。
576+
如果更新后 Pod 模板配置进入无法运行或就绪的状态(例如,
577+
由于错误的二进制文件或应用程序级配置错误),StatefulSet 将停止回滚并等待。
577578

578579
<!--
579580
In this state, it's not enough to revert the Pod template to a good configuration.
@@ -622,7 +623,7 @@ StatefulSet:
622623
For each policy that you can configure, you can set the value to either `Delete` or `Retain`.
623624
-->
624625
`whenDeleted`
625-
: 配置删除 StatefulSet 时应用的卷保留行为
626+
: 配置删除 StatefulSet 时应用的卷保留行为
626627

627628
`whenScaled`
628629
: 配置当 StatefulSet 的副本数减少时应用的卷保留行为;例如,缩小集合时。
@@ -710,7 +711,7 @@ to be garbage collected after only the condemned Pods have terminated.
710711
执行协调操作时,StatefulSet 控制器将其所需的副本数与集群上实际存在的 Pod 进行比较。
711712
对于 StatefulSet 中的所有 Pod 而言,如果其 ID 大于副本数,则将被废弃并标记为需要删除。
712713
如果 `whenScaled` 策略是 `Delete`,则在删除 Pod 之前,
713-
首先将已销毁的 Pod 设置为与 StatefulSet 模板 对应的 PVC 的属主。
714+
首先将已销毁的 Pod 设置为与 StatefulSet 模板对应的 PVC 的属主。
714715
这会导致 PVC 仅在已废弃的 Pod 终止后被垃圾收集。
715716

716717
<!--
@@ -747,7 +748,7 @@ that you previously did.
747748

748749
如果你手动扩缩已部署的负载,例如通过 `kubectl scale statefulset statefulset --replicas=X`,
749750
然后根据清单更新 StatefulSet(例如:通过运行 `kubectl apply -f statefulset.yaml`),
750-
那么应用该清单的操作会覆盖你之前所做的手动缩放
751+
那么应用该清单的操作会覆盖你之前所做的手动扩缩
751752

752753
<!--
753754
If a [HorizontalPodAutoscaler](/docs/tasks/run-application/horizontal-pod-autoscale/)
@@ -757,7 +758,7 @@ Statefulset, don't set `.spec.replicas`. Instead, allow the Kubernetes
757758
the `.spec.replicas` field automatically.
758759
-->
759760
如果 [HorizontalPodAutoscaler](/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale/)
760-
(或任何类似的水平缩放 API)正在管理 Statefulset 的缩放,
761+
(或任何类似的水平缩放 API)正在管理 StatefulSet 的缩放,
761762
请不要设置 `.spec.replicas`。
762763
相反,允许 Kubernetes 控制平面自动管理 `.spec.replicas` 字段。
763764

0 commit comments

Comments
 (0)