如何扩展已创建的作业?

Tho*_*ger 8 kubernetes

例如,我有一个 Kubernetes 作业,它的并行度设置为 4。创建此作业时,我可能希望将其扩展到 8。但似乎editing 作业并将并行度设置为 8 并没有实际上在 Job 中创建更多的 pod。

我错过了什么吗?或者有没有办法扩展工作?

Vit*_*Vit 5

因此,根据作业文档,您仍然可以运行以下命令来扩展作业:

kubectl scale job my-job --replicas=[VALUE]
Run Code Online (Sandbox Code Playgroud)

简单的测试表明这个选项现在按预期工作,但将来会被真正弃用

kubectl scale 作业已弃用,将在未来版本中删除。

不推荐使用 kubectl scale 作业的功能。所有其他扩展操作保持不变,但在未来版本中将删除扩展作业的功能。

原因是:弃用 kubectl scale 作业

下面以 Job yaml 为例创建作业:

apiVersion: batch/v1
kind: Job
metadata:
  name: test-job
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2010)"]
      restartPolicy: Never
  completions: 1000
  parallelism: 5
Run Code Online (Sandbox Code Playgroud)

现在让我们测试行为:

kubectl describe jobs.batch test-job 
Parallelism:    5
Completions:    1000
Start Time:     Fri, 17 May 2019 16:58:36 +0200
Pods Statuses:  5 Running / 21 Succeeded / 0 Failed


kubectl get pods | grep test-job | grep Running
test-job-98mlv           1/1     Running     0          13s
test-job-fs2hb           1/1     Running     0          8s
test-job-l8n6v           1/1     Running     0          16s
test-job-lbh46           1/1     Running     0          13s
test-job-m8btl           1/1     Running     0          2s
Run Code Online (Sandbox Code Playgroud)

更改并行性kubectl scale

kubectl scale jobs.batch test-job --replicas=10

kubectl describe jobs.batch test-job
Parallelism:    10
Completions:    1000
Start Time:     Fri, 17 May 2019 16:58:36 +0200
Pods Statuses:  10 Running / 87 Succeeded / 0 Fail

kubectl get pods | grep test-job | grep Running
test-job-475zf           1/1     Running     0          10s
test-job-5k45h           1/1     Running     0          14s
test-job-8p99v           1/1     Running     0          22s
test-job-jtssp           1/1     Running     0          4s
test-job-ltx8f           1/1     Running     0          12s
test-job-mwnqb           1/1     Running     0          16s
test-job-n7t8b           1/1     Running     0          20s
test-job-p4bfs           1/1     Running     0          18s
test-job-vj8qw           1/1     Running     0          18s
test-job-wtjdl           1/1     Running     0          10s
Run Code Online (Sandbox Code Playgroud)

我相信最后一步对你来说是最有趣的——你总是可以使用kubectl patch命令编辑你的工作

kubectl patch job test-job -p '{"spec":{"parallelism":15}}'

kubectl describe jobs.batch test-job
Parallelism:    15
Completions:    1000
Start Time:     Fri, 17 May 2019 16:58:36 +0200
Pods Statuses:  15 Running / 175 Succeeded / 0 Failed

kubectl get pods | grep test-job | grep Running | wc -l
15
Run Code Online (Sandbox Code Playgroud)


Max*_*bur 1

有一个scale命令:

kubectl scale job my-job --replicas=[VALUE]
Run Code Online (Sandbox Code Playgroud)

来自文档

kubectl scale 会导致并发运行的 Pod 数量发生变化。具体来说,它将并行度值更改为您指定的 [VALUE]。