From 84cce5b0c6d61a565f5256db8117e0348f591629 Mon Sep 17 00:00:00 2001 From: Qiming Teng Date: Sun, 10 Jan 2021 16:19:18 +0800 Subject: [PATCH] [zh] Resync concepts/workloads/_index.md --- content/zh/docs/concepts/workloads/_index.md | 139 +++++++++++++------ 1 file changed, 98 insertions(+), 41 deletions(-) diff --git a/content/zh/docs/concepts/workloads/_index.md b/content/zh/docs/concepts/workloads/_index.md index a6594a7018779..743d452d9953e 100644 --- a/content/zh/docs/concepts/workloads/_index.md +++ b/content/zh/docs/concepts/workloads/_index.md @@ -17,8 +17,8 @@ no_list: true +Kubernetes Pods 有[确定的生命周期](/zh/docs/concepts/workloads/pods/pod-lifecycle/)。 +例如,一旦某 Pod 在你的集群中运行,Pod 运行所在的 {{< glossary_tooltip text="节点" term_id="node" >}} 出现致命错误时, 所有该节点上的 Pods 都会失败。Kubernetes 将这类失败视为最终状态: -即使节点后来恢复正常运行,你也需要创建新的 Pod。 +即使该节点后来恢复正常运行,你也需要创建新的 Pod 来恢复应用。 不过,为了让用户的日子略微好过一些,你并不需要直接管理每个 Pod。 相反,你可以使用 _负载资源_ 来替你管理一组 Pods。 这些资源配置 {{< glossary_tooltip term_id="controller" text="控制器" >}} 来确保合适类型的、处于运行状态的 Pod 个数是正确的,与你所指定的状态相一致。 -这些工作负载资源包括: +Kubernetes 提供若干种内置的工作负载资源: * [Deployment](/zh/docs/concepts/workloads/controllers/deployment/) 和 [ReplicaSet](/zh/docs/concepts/workloads/controllers/replicaset/) - (替换原来的资源 {{< glossary_tooltip text="ReplicationController" term_id="replication-controller" >}}); -* [StatefulSet](/zh/docs/concepts/workloads/controllers/statefulset/); -* 用来运行提供节点本地支撑设施(如存储驱动或网络插件)的 Pods 的 - [DaemonSet](/zh/docs/concepts/workloads/controllers/daemonset/); -* 用来执行运行到结束为止的 - [Job](/zh/docs/concepts/workloads/controllers/job/) 和 + (替换原来的资源 {{< glossary_tooltip text="ReplicationController" term_id="replication-controller" >}})。 + `Deployment` 很适合用来管理你的集群上的无状态应用,`Deployment` 中的所有 + `Pod` 都是相互等价的,并且在需要的时候被换掉。 +* [StatefulSet](/zh/docs/concepts/workloads/controllers/statefulset/) + 让你能够运行一个或者多个以某种方式跟踪应用状态的 Pods。 + 例如,如果你的负载会将数据作持久存储,你可以运行一个 `StatefulSet`,将每个 + `Pod` 与某个 [`PersistentVolume`](/zh/docs/concepts/storage/persistent-volumes/) + 对应起来。你在 `StatefulSet` 中各个 `Pod` 内运行的代码可以将数据复制到同一 + `StatefulSet` 中的其它 `Pod` 中以提高整体的服务可靠性。 + +* [DaemonSet](/zh/docs/concepts/workloads/controllers/daemonset/) + 定义提供节点本地支撑设施的 `Pods`。这些 Pods 可能对于你的集群的运维是 + 非常重要的,例如作为网络链接的辅助工具或者作为网络 + {{< glossary_tooltip text="插件" term_id="addons" >}} + 的一部分等等。每次你向集群中添加一个新节点时,如果该节点与某 `DaemonSet` + 的规约匹配,则控制面会为该 `DaemonSet` 调度一个 `Pod` 到该新节点上运行。 +* [Job](/zh/docs/concepts/workloads/controllers/job/) 和 [CronJob](/zh/docs/concepts/workloads/controllers/cron-jobs/)。 + 定义一些一直运行到结束并停止的任务。`Job` 用来表达的是一次性的任务,而 + `CronJob` 会根据其时间规划反复运行。 -你可能发现还有两种支撑概念很有用: - -* [垃圾收集](/zh/docs/concepts/workloads/controllers/garbage-collection/)机制负责在 - 对象的 _属主资源_ 被删除时在集群中清理这些对象。 -* [_结束后存在时间_ 控制器](/zh/docs/concepts/workloads/controllers/ttlafterfinished/) - 会在 Job 结束之后的指定时间间隔之后删除它们。 +在庞大的 Kubernetes 生态系统中,你还可以找到一些提供额外操作的第三方 +工作负载资源。通过使用 +[定制资源定义(CRD)](/zh/docs/concepts/extend-kubernetes/api-extension/custom-resources/), +你可以添加第三方工作负载资源,以完成原本不是 Kubernetes 核心功能的工作。 +例如,如果你希望运行一组 `Pods`,但要求所有 Pods 都可用时才执行操作 +(比如针对某种高吞吐量的分布式任务),你可以实现一个能够满足这一需求 +的扩展,并将其安装到集群中运行。 ## {{% heading "whatsnext" %}} @@ -93,7 +131,7 @@ As well as reading about each resource, you can learn about specific tasks that * [Run a stateless application using a Deployment](/docs/tasks/run-application/run-stateless-application-deployment/) * Run a stateful application either as a [single instance](/docs/tasks/run-application/run-single-instance-stateful-application/) or as a [replicated set](/docs/tasks/run-application/run-replicated-stateful-application/) -* [Run Automated Tasks with a CronJob](/docs/tasks/job/automated-tasks-with-cron-jobs/) +* [Run Automated Tasks with a `CronJob`](/docs/tasks/job/automated-tasks-with-cron-jobs/) --> 除了阅读了解每类资源外,你还可以了解与这些资源相关的任务: @@ -101,18 +139,37 @@ As well as reading about each resource, you can learn about specific tasks that * 以[单实例](/zh/docs/tasks/run-application/run-single-instance-stateful-application/) 或者[多副本集合](/zh/docs/tasks/run-application/run-replicated-stateful-application/) 的形式运行有状态的应用; -* [使用 CronJob 运行自动化的任务](/zh/docs/tasks/job/automated-tasks-with-cron-jobs/) +* [使用 `CronJob` 运行自动化的任务](/zh/docs/tasks/job/automated-tasks-with-cron-jobs/) +要了解 Kubernetes 将代码与配置分离的实现机制,可参阅 +[配置部分](/zh/docs/concepts/configuration/)。 -You can also visit [Configuration](/docs/concepts/configuration/) to learn about Kubernetes' -mechanisms for separating code from configuration. + +关于 Kubernetes 如何为应用管理 Pods,还有两个支撑概念能够提供相关背景信息: + +* [垃圾收集](/zh/docs/concepts/workloads/controllers/garbage-collection/)机制负责在 + 对象的 _属主资源_ 被删除时在集群中清理这些对象。 +* [_Time-to-Live_ 控制器](/zh/docs/concepts/workloads/controllers/ttlafterfinished/) + 会在 Job 结束之后的指定时间间隔之后删除它们。 + + -一旦你的应用处于运行状态,你就可能想要 -以[服务](/zh/docs/concepts/services-networking/service/) -使之在互联网上可访问;或者对于 Web 应用而言,使用 -[Ingress](/zh/docs/concepts/services-networking/ingress) 资源将其暴露到互联网上。 +一旦你的应用处于运行状态,你就可能想要以 +[`Service`](/zh/docs/concepts/services-networking/service/) +的形式使之可在互联网上访问;或者对于 Web 应用而言,使用 +[`Ingress`](/zh/docs/concepts/services-networking/ingress) 资源将其暴露到互联网上。