@@ -17,15 +17,15 @@ min-kubernetes-server-version: v1.8
17
17
In this example, we will run a Kubernetes Job with multiple parallel
18
18
worker processes in a given pod.
19
19
-->
20
- 在这个例子中,我们会运行一个Kubernetes Job,其中的 Pod 会运行多个并行工作进程。
20
+ 在这个例子中,我们会运行一个 Kubernetes Job,其中的 Pod 会运行多个并行工作进程。
21
21
22
22
<!--
23
23
In this example, as each pod is created, it picks up one unit of work
24
24
from a task queue, processes it, and repeats until the end of the queue is reached.
25
25
26
26
Here is an overview of the steps in this example:
27
27
-->
28
- 在这个例子中,当每个pod被创建时 ,它会从一个任务队列中获取一个工作单元,处理它,然后重复,直到到达队列的尾部。
28
+ 在这个例子中,当每个 Pod 被创建时 ,它会从一个任务队列中获取一个工作单元,处理它,然后重复,直到到达队列的尾部。
29
29
30
30
下面是这个示例的步骤概述:
31
31
@@ -54,7 +54,7 @@ Here is an overview of the steps in this example:
54
54
1. **Start a Job that works on tasks from the queue**. The Job starts several pods. Each pod takes
55
55
one task from the message queue, processes it, and repeats until the end of the queue is reached.
56
56
-->
57
- 3 . ** 启动一个 Job 对队列中的任务进行处理** 。这个 Job 启动了若干个 Pod 。
57
+ 3 . ** 启动一个 Job 对队列中的任务进行处理** 。这个 Job 启动了若干个 Pod。
58
58
每个 Pod 从消息队列中取出一个工作任务,处理它,然后重复,直到到达队列的尾部。
59
59
60
60
## {{% heading "prerequisites" %}}
@@ -104,13 +104,15 @@ Start a temporary interactive pod for running the Redis CLI.
104
104
-->
105
105
## 使用任务填充队列
106
106
107
- 现在,让我们往队列里添加一些“任务”。在这个例子中,我们的任务是一些将被打印出来的字符串。
107
+ 现在,让我们往队列里添加一些 “任务”。在这个例子中,我们的任务是一些将被打印出来的字符串。
108
108
109
- 启动一个临时的可交互的 pod 用于运行 Redis 命令行界面。
109
+ 启动一个临时的可交互的 Pod 用于运行 Redis 命令行界面。
110
110
111
111
``` shell
112
112
kubectl run -i --tty temp --image redis --command " /bin/sh"
113
113
```
114
+
115
+ 输出类似于:
114
116
```
115
117
Waiting for pod default/redis2-c7h78 to be running, status is Pending, pod ready: false
116
118
Hit enter for command prompt
@@ -119,7 +121,7 @@ Hit enter for command prompt
119
121
<!--
120
122
Now hit enter, start the redis CLI, and create a list with some work items in it.
121
123
-->
122
- 现在按回车键,启动 redis 命令行界面,然后创建一个存在若干个工作项的列表。
124
+ 现在按回车键,启动 Redis 命令行界面,然后创建一个存在若干个工作项的列表。
123
125
124
126
``` shell
125
127
# redis-cli -h redis
@@ -178,17 +180,17 @@ called rediswq.py ([Download](/examples/application/job/redis/rediswq.py)).
178
180
-->
179
181
## 创建镜像
180
182
181
- 现在我们已经准备好创建一个我们要运行的镜像
183
+ 现在我们已经准备好创建一个我们要运行的镜像。
182
184
183
- 我们会使用一个带有 redis 客户端的 python 工作程序从消息队列中读出消息。
185
+ 我们会使用一个带有 Redis 客户端的 Python 工作程序从消息队列中读出消息。
184
186
185
- 这里提供了一个简单的 Redis 工作队列客户端库,叫 rediswq.py ([ 下载] ( /examples/application/job/redis/rediswq.py ) )。
187
+ 这里提供了一个简单的 Redis 工作队列客户端库,名为 rediswq.py ([ 下载] ( /examples/application/job/redis/rediswq.py ) )。
186
188
187
189
<!--
188
190
The "worker" program in each Pod of the Job uses the work queue
189
191
client library to get work. Here it is:
190
192
-->
191
- Job 中每个 Pod 内的 “工作程序” 使用工作队列客户端库获取工作。如下 :
193
+ Job 中每个 Pod 内的 “工作程序” 使用工作队列客户端库获取工作。具体如下 :
192
194
193
195
{{< codenew language="python" file="application/job/redis/worker.py" >}}
194
196
@@ -235,7 +237,7 @@ your app image with your project ID, and push to GCR. Replace
235
237
`<project>` with your project ID.
236
238
-->
237
239
如果你使用的是 [ Google Container Registry] ( https://cloud.google.com/tools/container-registry/ ) ,
238
- 请先用你的 project ID 给你的镜像打上标签,然后 push 到 GCR 。请将 ` <project> ` 替换为你自己的 project ID
240
+ 请先用你的 project ID 给你的镜像打上标签,然后 push 到 GCR 。请将 ` <project> ` 替换为你自己的 project ID。
239
241
240
242
``` shell
241
243
docker tag job-wq-2 gcr.io/< project> /job-wq-2
@@ -249,15 +251,15 @@ Here is the job definition:
249
251
-->
250
252
## 定义一个 Job
251
253
252
- 这是 job 定义:
254
+ 这是 Job 定义:
253
255
254
256
{{< codenew file="application/job/redis/job.yaml" >}}
255
257
256
258
<!--
257
259
Be sure to edit the job template to
258
260
change `gcr.io/myproject` to your own path.
259
261
-->
260
- 请确保将 job 模板中的 ` gcr.io/myproject ` 更改为你自己的路径。
262
+ 请确保将 Job 模板中的 ` gcr.io/myproject ` 更改为你自己的路径。
261
263
262
264
<!--
263
265
In this example, each pod works on several items from the queue and then exits when there are no more items.
@@ -268,12 +270,12 @@ exits with success, the controller knows the work is done, and the Pods will exi
268
270
So, we set the completion count of the Job to 1. The job controller will wait for the other pods to complete
269
271
too.
270
272
-->
271
- 在这个例子中,每个 pod 处理了队列中的多个项目,直到队列中没有项目时便退出。
273
+ 在这个例子中,每个 Pod 处理了队列中的多个项目,直到队列中没有项目时便退出。
272
274
因为是由工作程序自行检测工作队列是否为空,并且 Job 控制器不知道工作队列的存在,
273
275
这依赖于工作程序在完成工作时发出信号。
274
276
工作程序以成功退出的形式发出信号表示工作队列已经为空。
275
277
所以,只要有任意一个工作程序成功退出,控制器就知道工作已经完成了,所有的 Pod 将很快会退出。
276
- 因此,我们将 Job 的完成计数(Completion Count)设置为 1 。
278
+ 因此,我们将 Job 的完成计数(Completion Count)设置为 1。
277
279
尽管如此,Job 控制器还是会等待其它 Pod 完成。
278
280
279
281
<!--
@@ -283,7 +285,7 @@ So, now run the Job:
283
285
-->
284
286
## 运行 Job
285
287
286
- 现在运行这个 Job :
288
+ 现在运行这个 Job:
287
289
288
290
``` shell
289
291
kubectl apply -f ./job.yaml
@@ -325,12 +327,13 @@ Events:
325
327
33s 33s 1 {job-controller } Normal SuccessfulCreate Created pod: job-wq-2-lglf8
326
328
```
327
329
328
- 查看日志 :
330
+ 运行以下命令查看日志 :
329
331
330
332
``` shell
331
333
kubectl logs pods/job-wq-2-7r7b2
332
334
```
333
335
336
+ 日志类似于:
334
337
```
335
338
Worker with sessionID: bbd72d0a-9e5c-4dd6-abf6-416cc267991f
336
339
Initial queue state: empty=False
@@ -342,7 +345,7 @@ Working on lemon
342
345
<!--
343
346
As you can see, one of our pods worked on several work units.
344
347
-->
345
- 你可以看到,其中的一个 pod 处理了若干个工作单元。
348
+ 你可以看到,其中的一个 Pod 处理了若干个工作单元。
346
349
347
350
<!-- discussion -->
348
351
0 commit comments