首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何横向扩展已创建的作业?

如何横向扩展已创建的作业?
EN

Stack Overflow用户
提问于 2019-05-09 00:04:13
回答 6查看 2.6K关注 0票数 8

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

我是不是遗漏了什么?或者,是否没有办法向外扩展工作?

EN

回答 6

Stack Overflow用户

发布于 2019-05-17 23:09:01

因此,根据job documentation,您仍然可以通过运行以下命令来缩放作业:

代码语言:javascript
复制
kubectl scale job my-job --replicas=[VALUE]

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

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

使用kubectl缩放作业的功能已弃用。所有其他缩放操作仍然存在,但在未来的版本中将删除缩放作业的功能。

原因是:Deprecate kubectl scale job

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

代码语言:javascript
复制
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

现在让我们测试一下行为:

代码语言:javascript
复制
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

使用kubectl scale更改并行性

代码语言:javascript
复制
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

我相信你最感兴趣的最后一步--你总是可以使用kubectl patch命令来编辑你的工作

代码语言:javascript
复制
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
票数 5
EN

Stack Overflow用户

发布于 2020-01-20 17:15:22

kubectl scale不再支持Job资源。以下是我的工作解决方案:

parallelism字段设置为适合您的值。

它将创建新的pod或终止现有的pod。

票数 2
EN

Stack Overflow用户

发布于 2019-05-09 00:43:41

这里有一个scale命令:

代码语言:javascript
复制
kubectl scale job my-job --replicas=[VALUE]

来自docs

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56044819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档