From 58fd12ed47ec7b88e1b96308b511a053e9e14342 Mon Sep 17 00:00:00 2001 From: "xin.li" Date: Sun, 10 Sep 2023 15:33:50 +0800 Subject: [PATCH] [zh-cn] sync concepts/workloads/* Signed-off-by: xin.li --- .../workloads/controllers/cron-jobs.md | 2 +- .../workloads/controllers/daemonset.md | 6 ++- .../workloads/controllers/deployment.md | 11 ++-- .../concepts/workloads/controllers/job.md | 6 +-- .../workloads/controllers/replicaset.md | 6 +-- .../controllers/replicationcontroller.md | 23 +++++--- .../docs/concepts/workloads/pods/_index.md | 54 ++++++++++++------- .../workloads/pods/init-containers.md | 4 +- 8 files changed, 71 insertions(+), 41 deletions(-) diff --git a/content/zh-cn/docs/concepts/workloads/controllers/cron-jobs.md b/content/zh-cn/docs/concepts/workloads/controllers/cron-jobs.md index 35b771a27f..e291a3a9be 100644 --- a/content/zh-cn/docs/concepts/workloads/controllers/cron-jobs.md +++ b/content/zh-cn/docs/concepts/workloads/controllers/cron-jobs.md @@ -77,7 +77,7 @@ This example CronJob manifest prints the current time and a hello message every 下面的 CronJob 示例清单会在每分钟打印出当前时间和问候消息: -{{% code file="application/job/cronjob.yaml" %}} +{{% code_sample file="application/job/cronjob.yaml" %}} ### Deployment diff --git a/content/zh-cn/docs/concepts/workloads/controllers/deployment.md b/content/zh-cn/docs/concepts/workloads/controllers/deployment.md index 3e0800f72a..74be6c193d 100644 --- a/content/zh-cn/docs/concepts/workloads/controllers/deployment.md +++ b/content/zh-cn/docs/concepts/workloads/controllers/deployment.md @@ -38,7 +38,7 @@ A _Deployment_ provides declarative updates for {{< glossary_tooltip text="Pods" -你负责描述 Deployment 中的 **目标状态**,而 Deployment {{< glossary_tooltip term_id="controller" >}} +你负责描述 Deployment 中的**目标状态**,而 Deployment {{< glossary_tooltip term_id="controller" >}} 以受控速率更改实际状态, 使其变为期望状态。你可以定义 Deployment 以创建新的 ReplicaSet,或删除现有 Deployment, 并通过新的 Deployment 收养其资源。 @@ -47,7 +47,7 @@ You describe a _desired state_ in a Deployment, and the Deployment {{< glossary_ -不要管理 Deployment 所拥有的 ReplicaSet 。 +不要管理 Deployment 所拥有的 ReplicaSet。 如果存在下面未覆盖的使用场景,请考虑在 Kubernetes 仓库中提出 Issue。 {{< /note >}} @@ -91,7 +91,7 @@ The following is an example of a Deployment. It creates a ReplicaSet to bring up --> 下面是一个 Deployment 示例。其中创建了一个 ReplicaSet,负责启动三个 `nginx` Pod: -{{% code file="controllers/nginx-deployment.yaml" %}} +{{% code_sample file="controllers/nginx-deployment.yaml" %}} `.spec.revisionHistoryLimit` 是一个可选字段,用来设定出于回滚目的所要保留的旧 ReplicaSet 数量。 这些旧 ReplicaSet 会消耗 etcd 中的资源,并占用 `kubectl get rs` 的输出。 diff --git a/content/zh-cn/docs/concepts/workloads/controllers/job.md b/content/zh-cn/docs/concepts/workloads/controllers/job.md index 021b5a50dc..482c2c7374 100644 --- a/content/zh-cn/docs/concepts/workloads/controllers/job.md +++ b/content/zh-cn/docs/concepts/workloads/controllers/job.md @@ -73,7 +73,7 @@ It takes around 10s to complete. 下面是一个 Job 配置示例。它负责计算 π 到小数点后 2000 位,并将结果打印出来。 此计算大约需要 10 秒钟完成。 -{{% code file="controllers/job.yaml" %}} +{{% code_sample file="controllers/job.yaml" %}} 以下是定义 `backoffLimitPerIndex` 的 Job 示例清单: -{{< codenew file="/controllers/job-backoff-limit-per-index-example.yaml" >}} +{{% code_sample file="/controllers/job-backoff-limit-per-index-example.yaml" %}} 下面是一个定义了 `podFailurePolicy` 的 Job 的清单: -{{% code file="/controllers/job-pod-failure-policy-example.yaml" %}} +{{% code_sample file="/controllers/job-pod-failure-policy-example.yaml" %}} ## 示例 {#example} -{{% code file="controllers/frontend.yaml" %}} +{{% code_sample file="controllers/frontend.yaml" %}} ### 重新调度 {#rescheduling} -如上所述,无论你想要继续运行 1 个 Pod 还是 1000 个 Pod,一个 ReplicationController 都将确保存在指定数量的 Pod,即使在节点故障或 Pod 终止(例如,由于另一个控制代理的操作)的情况下也是如此。 +如上所述,无论你想要继续运行 1 个 Pod 还是 1000 个 Pod,一个 +ReplicationController 都将确保存在指定数量的 Pod,即使在节点故障或 +Pod 终止(例如,由于另一个控制代理的操作)的情况下也是如此。 ### 扩缩容 {#scaling} @@ -419,9 +425,11 @@ Ideally, the rolling update controller would take application readiness into acc The two ReplicationControllers would need to create pods with at least one differentiating label, such as the image tag of the primary container of the pod, since it is typically image updates that motivate rolling updates. --> -理想情况下,滚动更新控制器将考虑应用程序的就绪情况,并确保在任何给定时间都有足够数量的 Pod 有效地提供服务。 +理想情况下,滚动更新控制器将考虑应用程序的就绪情况,并确保在任何给定时间都有足够数量的 +Pod 有效地提供服务。 -这两个 ReplicationController 将需要创建至少具有一个不同标签的 Pod,比如 Pod 主要容器的镜像标签,因为通常是镜像更新触发滚动更新。 +这两个 ReplicationController 将需要创建至少具有一个不同标签的 Pod, +比如 Pod 主要容器的镜像标签,因为通常是镜像更新触发滚动更新。 ### Deployment (推荐) -[`Deployment`](/zh-cn/docs/concepts/workloads/controllers/deployment/) 是一种更高级别的 API 对象,用于更新其底层 ReplicaSet 及其 Pod。 +[`Deployment`](/zh-cn/docs/concepts/workloads/controllers/deployment/) +是一种更高级别的 API 对象,用于更新其底层 ReplicaSet 及其 Pod。 如果你想要这种滚动更新功能,那么推荐使用 Deployment,因为它们是声明式的、服务端的,并且具有其它特性。 @@ -25,11 +19,13 @@ card: _Pods_ are the smallest deployable units of computing that you can create and manage in Kubernetes. A _Pod_ (as in a pod of whales or pea pod) is a group of one or more -{{< glossary_tooltip text="containers" term_id="container" >}}, with shared storage and network resources, and a specification for how to run the containers. A Pod's contents are always co-located and +{{< glossary_tooltip text="containers" term_id="container" >}}, with shared storage and network resources, +and a specification for how to run the containers. A Pod's contents are always co-located and co-scheduled, and run in a shared context. A Pod models an application-specific "logical host": it contains one or more application containers which are relatively tightly coupled. -In non-cloud contexts, applications executed on the same physical or virtual machine are analogous to cloud applications executed on the same logical host. +In non-cloud contexts, applications executed on the same physical or virtual machine are +analogous to cloud applications executed on the same logical host. --> **Pod** 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。 @@ -70,7 +66,8 @@ into each node in the cluster so that Pods can run there. 有些 Pod 具有 {{< glossary_tooltip text="Init 容器" term_id="init-container" >}}和 {{< glossary_tooltip text="应用容器" term_id="app-container" >}}。 Init 容器会在启动应用容器之前运行并完成。 +{{< feature-state for_k8s_version="v1.28" state="alpha" >}} + + +启用 `SidecarContainers` [特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/)允许你为 +Init 容器指定 `restartPolicy: Always`。设置重启策略为 `Always` 会确保 Init 容器在 Pod 的整个生命周期内保持运行。 +更多细节参阅[边车容器和重启策略](/zh-cn/docs/concepts/workloads/pods/init-containers/#sidecar-containers-and-restartpolicy) + + Pod 天生地为其成员容器提供了两种共享资源:[网络](#pod-networking)和[存储](#pod-storage)。 你的{{< glossary_tooltip text="容器运行时" term_id="container-runtime" >}}必须支持特权容器的概念才能使用这一配置。 {{< /note >}} @@ -596,7 +612,7 @@ Pods, the kubelet directly supervises each static Pod (and restarts it if it fai --> ## 静态 Pod {#static-pods} -**静态 Pod(Static Pod)** 直接由特定节点上的 `kubelet` 守护进程管理, +**静态 Pod(Static Pod)**直接由特定节点上的 `kubelet` 守护进程管理, 不需要 {{< glossary_tooltip text="API 服务器" term_id="kube-apiserver" >}}看到它们。 尽管大多数 Pod 都是通过控制面(例如,{{< glossary_tooltip text="Deployment" term_id="deployment" >}}) 来管理的,对于静态 Pod 而言,`kubelet` 直接监控每个 Pod,并在其失效时重启之。 diff --git a/content/zh-cn/docs/concepts/workloads/pods/init-containers.md b/content/zh-cn/docs/concepts/workloads/pods/init-containers.md index a042ac32b0..12e798976c 100644 --- a/content/zh-cn/docs/concepts/workloads/pods/init-containers.md +++ b/content/zh-cn/docs/concepts/workloads/pods/init-containers.md @@ -551,7 +551,7 @@ Here's an example of a Deployment with two containers, one of which is a sidecar 以下是一个具有两个容器的 Deployment 示例,其中一个是边车: -{{% codenew language="yaml" file="application/deployment-sidecar.yaml" %}} +{{% code_sample language="yaml" file="application/deployment-sidecar.yaml" %}}