From 3b74fd746ec7be913e22503120d1535fa1354488 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 9 Jul 2022 11:06:36 +0800 Subject: [PATCH] [zh-cn] updated controllers/statefulset.md --- .../workloads/controllers/statefulset.md | 65 ++++++++++--------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/content/zh-cn/docs/concepts/workloads/controllers/statefulset.md b/content/zh-cn/docs/concepts/workloads/controllers/statefulset.md index 8897131ba1..7bc7f7d145 100644 --- a/content/zh-cn/docs/concepts/workloads/controllers/statefulset.md +++ b/content/zh-cn/docs/concepts/workloads/controllers/statefulset.md @@ -1,5 +1,5 @@ --- -title: StatefulSets +title: StatefulSet content_type: concept weight: 30 --- @@ -7,7 +7,7 @@ weight: 30 @@ -27,9 +27,9 @@ StatefulSet 是用来管理有状态应用的工作负载 API 对象。 StatefulSets are valuable for applications that require one or more of the following. --> -## 使用 StatefulSets {#using-statefulsets} +## 使用 StatefulSet {#using-statefulsets} -StatefulSets 对于需要满足以下一个或多个需求的应用程序很有价值: +StatefulSet 对于需要满足以下一个或多个需求的应用程序很有价值: * 稳定的、唯一的网络标识符。 * 稳定的、持久的存储。 -* 有序的、优雅的部署和缩放。 +* 有序的、优雅的部署和扩缩。 * 有序的、自动的滚动更新。 在上面描述中,“稳定的”意味着 Pod 调度或重调度的整个过程是有持久性的。 -如果应用程序不需要任何稳定的标识符或有序的部署、删除或伸缩,则应该使用 -由一组无状态的副本控制器提供的工作负载来部署应用程序,比如 +如果应用程序不需要任何稳定的标识符或有序的部署、删除或扩缩, +则应该使用由一组无状态的副本控制器提供的工作负载来部署应用程序,比如 [Deployment](/zh-cn/docs/concepts/workloads/controllers/deployment/) 或者 [ReplicaSet](/zh-cn/docs/concepts/workloads/controllers/replicaset/) 可能更适用于你的无状态应用部署需要。 @@ -75,13 +75,13 @@ that provides a set of stateless replicas. * 给定 Pod 的存储必须由 [PersistentVolume 驱动](https://github.com/kubernetes/examples/tree/master/staging/persistent-volume-provisioning/README.md) 基于所请求的 `storage class` 来提供,或者由管理员预先提供。 -* 删除或者收缩 StatefulSet 并*不会*删除它关联的存储卷。 +* 删除或者扩缩 StatefulSet 并**不会**删除它关联的存储卷。 这样做是为了保证数据安全,它通常比自动清除 StatefulSet 所有相关的资源更有价值。 * StatefulSet 当前需要[无头服务](/zh-cn/docs/concepts/services-networking/service/#headless-services) 来负责 Pod 的网络标识。你需要负责创建此服务。 -* 当删除 StatefulSets 时,StatefulSet 不提供任何终止 Pod 的保证。 - 为了实现 StatefulSet 中的 Pod 可以有序地且体面地终止,可以在删除之前将 StatefulSet - 缩放为 0。 +* 当删除一个 StatefulSet 时,该 StatefulSet 不提供任何终止 Pod 的保证。 + 为了实现 StatefulSet 中的 Pod 可以有序且体面地终止,可以在删除之前将 StatefulSet + 缩容到 0。 * 在默认 [Pod 管理策略](#pod-management-policies)(`OrderedReady`) 时使用 [滚动更新](#rolling-updates),可能进入需要[人工干预](#forced-rollback) 才能修复的损坏状态。 @@ -176,14 +176,14 @@ You must set the `.spec.selector` field of a StatefulSet to match the labels of --> 你必须设置 StatefulSet 的 `.spec.selector` 字段,使之匹配其在 `.spec.template.metadata.labels` 中设置的标签。 -未指定匹配的 Pod 选择器将在创建 StatefulSet 期间导致验证错误。 +未指定匹配的 Pod 选择算符将在创建 StatefulSet 期间导致验证错误。 -### 卷申领模版 {#volume-claim-templates} +### 卷申领模板 {#volume-claim-templates} 你可以设置 `.spec.volumeClaimTemplates`, 它可以使用 PersistentVolume 制备程序所准备的 @@ -219,7 +219,7 @@ regardless of which node it's (re)scheduled on. ## Pod 标识 {#pod-identity} StatefulSet Pod 具有唯一的标识,该标识包括顺序标识、稳定的网络标识和稳定的存储。 -该标识和 Pod 是绑定的,不管它被调度在哪个节点上。 +该标识和 Pod 是绑定的,与该 Pod 调度到哪个节点上无关。 ### 有序索引 {#ordinal-index} -对于具有 N 个副本的 StatefulSet,StatefulSet 中的每个 Pod 将被分配一个整数序号, -从 0 到 N-1,该序号在 StatefulSet 上是唯一的。 +对于具有 N 个副本的 StatefulSet,该 StatefulSet 中的每个 Pod 将被分配一个从 0 到 N-1 +的整数序号,该序号在此 StatefulSet 上是唯一的。 -如果用户想将示例中的 StatefulSet 收缩为 `replicas=1`,首先被终止的是 web-2。 +如果用户想将示例中的 StatefulSet 缩放为 `replicas=1`,首先被终止的是 web-2。 在 web-2 没有被完全停止和删除前,web-1 不会被终止。 当 web-2 已被终止和删除、web-1 尚未被终止,如果在此期间发生 web-0 运行失败, 那么就不会终止 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 `Parallel` Pod 管理让 StatefulSet 控制器并行的启动或终止所有的 Pod, 启动或者终止其他 Pod 前,无需等待 Pod 进入 Running 和 ready 或者完全停止状态。 -这个选项只会影响伸缩操作的行为,更新则不会被影响。 +这个选项只会影响扩缩操作的行为,更新则不会被影响。 `whenDeleted` -: 配置删除 StatefulSet 时应用的卷保留行为 +: 配置删除 StatefulSet 时应用的卷保留行为。 `whenScaled` : 配置当 StatefulSet 的副本数减少时应用的卷保留行为;例如,缩小集合时。 @@ -710,7 +711,7 @@ to be garbage collected after only the condemned Pods have terminated. 执行协调操作时,StatefulSet 控制器将其所需的副本数与集群上实际存在的 Pod 进行比较。 对于 StatefulSet 中的所有 Pod 而言,如果其 ID 大于副本数,则将被废弃并标记为需要删除。 如果 `whenScaled` 策略是 `Delete`,则在删除 Pod 之前, -首先将已销毁的 Pod 设置为与 StatefulSet 模板 对应的 PVC 的属主。 +首先将已销毁的 Pod 设置为与 StatefulSet 模板对应的 PVC 的属主。 这会导致 PVC 仅在已废弃的 Pod 终止后被垃圾收集。 如果 [HorizontalPodAutoscaler](/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale/) -(或任何类似的水平缩放 API)正在管理 Statefulset 的缩放, +(或任何类似的水平缩放 API)正在管理 StatefulSet 的缩放, 请不要设置 `.spec.replicas`。 相反,允许 Kubernetes 控制平面自动管理 `.spec.replicas` 字段。