[zh-cn] updated /tasks/job/indexed-parallel-processing-static.md
This commit is contained in:
@@ -15,7 +15,6 @@ weight: 30
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
|
||||
<!--
|
||||
In this example, you will run a Kubernetes Job that uses multiple parallel
|
||||
worker processes.
|
||||
@@ -25,7 +24,7 @@ to identify which part of the overall task to work on.
|
||||
-->
|
||||
在此示例中,你将运行一个使用多个并行工作进程的 Kubernetes Job。
|
||||
每个 worker 都是在自己的 Pod 中运行的不同容器。
|
||||
Pod 具有控制平面自动设置的 _索引编号(index number)_,
|
||||
Pod 具有控制平面自动设置的**索引编号(index number)**,
|
||||
这些编号使得每个 Pod 能识别出要处理整个任务的哪个部分。
|
||||
|
||||
<!--
|
||||
@@ -55,7 +54,7 @@ Here is an overview of the steps in this example:
|
||||
以下是此示例中步骤的概述:
|
||||
|
||||
1. **定义使用带索引完成信息的 Job 清单**。
|
||||
Downward API 使你可以将 Pod 索引注释作为环境变量或文件传递给容器。
|
||||
Downward API 使你可以将 Pod 索引注解作为环境变量或文件传递给容器。
|
||||
2. **根据该清单启动一个带索引(`Indexed`)的 Job**。
|
||||
|
||||
## {{% heading "prerequisites" %}}
|
||||
@@ -111,7 +110,7 @@ rev data.txt
|
||||
You'll use the `rev` tool from the
|
||||
[`busybox`](https://hub.docker.com/_/busybox) container image.
|
||||
-->
|
||||
你将使用 [`busybox`](https://hub.docker.com/_/busybox) 容器映像中的 `rev` 工具。
|
||||
你将使用 [`busybox`](https://hub.docker.com/_/busybox) 容器镜像中的 `rev` 工具。
|
||||
|
||||
<!--
|
||||
As this is only an example, each Pod only does a tiny piece of work (reversing a short
|
||||
@@ -123,9 +122,9 @@ frame of that video clip. Indexed completion would mean that each Pod in
|
||||
the Job knows which frame to render and publish, by counting frames from
|
||||
the start of the clip.
|
||||
-->
|
||||
由于这只是一个例子,每个 Pod 只做一小部分工作(反转一个短字符串)。
|
||||
例如,在实际工作负载中,你可能会创建一个表示基于场景数据制作 60 秒视频的任务的 Job 。
|
||||
视频渲染 Job 中的每个工作项都将渲染该视频剪辑的特定帧。
|
||||
由于这只是一个例子,每个 Pod 只做一小部分工作(反转一个短字符串)。
|
||||
例如,在实际工作负载中,你可能会创建一个表示基于场景数据制作 60 秒视频任务的 Job 。
|
||||
此视频渲染 Job 中的每个工作项都将渲染该视频剪辑的特定帧。
|
||||
索引完成意味着 Job 中的每个 Pod 都知道通过从剪辑开始计算帧数,来确定渲染和发布哪一帧,。
|
||||
|
||||
<!-- ## Define an Indexed Job -->
|
||||
@@ -150,7 +149,7 @@ from a [ConfigMap as an environment variable or file](/docs/tasks/configure-pod-
|
||||
-->
|
||||
在上面的示例中,你使用 Job 控制器为所有容器设置的内置 `JOB_COMPLETION_INDEX` 环境变量。
|
||||
[Init 容器](/zh-cn/docs/concepts/workloads/pods/init-containers/)
|
||||
将索引映射到一个静态值,并将其写入一个文件,该文件通过
|
||||
将索引映射到一个静态值,并将其写入一个文件,该文件通过
|
||||
[emptyDir 卷](/zh-cn/docs/concepts/storage/volumes/#emptydir)
|
||||
与运行 worker 的容器共享。或者,你可以
|
||||
[通过 Downward API 定义自己的环境变量](/zh-cn/docs/tasks/inject-data-application/environment-variable-expose-pod-information/)
|
||||
@@ -187,14 +186,14 @@ Because `.spec.parallelism` is less than `.spec.completions`, the control plane
|
||||
|
||||
Once you have created the Job, wait a moment then check on progress:
|
||||
-->
|
||||
当你创建此 Job 时,控制平面会创建一系列 Pod,每个索引都由你指定。
|
||||
`.spec.parallelism` 的值决定了一次可以运行多少个,
|
||||
当你创建此 Job 时,控制平面会创建一系列 Pod,你指定的每个索引都会运行一个 Pod。
|
||||
`.spec.parallelism` 的值决定了一次可以运行多少个 Pod,
|
||||
而 `.spec.completions` 决定了 Job 总共创建了多少个 Pod。
|
||||
|
||||
因为 `.spec.parallelism` 小于 `.spec.completions`,
|
||||
控制平面在启动更多 Pod 之前,等待部分第一批 Pod 完成。
|
||||
所以控制平面在启动更多 Pod 之前,将等待第一批的某些 Pod 完成。
|
||||
|
||||
创建 Job 后,稍等片刻,然后检查进度:
|
||||
创建 Job 后,稍等片刻,就能检查进度:
|
||||
|
||||
```shell
|
||||
kubectl describe jobs/indexed-job
|
||||
@@ -274,4 +273,4 @@ kubectl logs indexed-job-fdhq5 # 更改它以匹配来自该 Job 的 Pod 的名
|
||||
|
||||
```
|
||||
xuq
|
||||
```
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user