我正试图使用索引作业在多个数据上运行docker映像。
从Kubernetes 1.21开始,索引作业似乎是可用的,但我在谷歌kubernetes引擎上的工作不识别变量$JOB_COMPLETION_INDEX
。
我的yaml文件如下:
spec:
containers:
- args:
- --job_id="$JOB_COMPLETION_INDEX"
如果我设置job_id=0
,它可以正常工作。
即使我在顶级规范中添加以下内容,
spec:
completions: 3
parallelism: 3
completionMode: Indexed
yaml文件自动删除该部分(我使用谷歌云网络控制台编辑yaml文件(。
我尝试了带有Kubernetes alpha特性的1.22.3-gke.700
和1.21.5-gke.1302
,但都没有成功。
索引作业现在在谷歌kubernetes引擎中可用吗?
您从哪里获得args
?请改用command
。它看起来像这样:
apiVersion: batch/v1
kind: Job
metadata:
name: 'sample-job'
spec:
completions: 3
parallelism: 3
completionMode: Indexed
template:
spec:
restartPolicy: Never
containers:
- command:
- 'bash'
- '-c'
- 'echo "My partition: ${JOB_COMPLETION_INDEX}"'
image: 'docker.io/library/bash'
name: 'sample-load'
它来自官方文件。
或者这个例子也适用:
[...]
spec:
subdomain: my-job-svc
containers:
- name: task
image: registry.example.com/processing-image
command: ["./process", "--index", "$JOB_COMPLETION_INDEX", "--hosts-pattern", "my-job-{{.id}}.my-job-svc"]