linux怎么查看本机内存大小
251
2022-09-10
Kubernetes----Job控制器
一、Job控制器简介
1.1 Job控制器简介
Job,主要用于负责批量处理短暂的一次性任务,Job特点如下:
当Job创建的Pod执行成功时,job将几乎成功结束的pod数量当成功结束的pod达到指定的数量时,job将完成执行
1.2 Job控制器资源文件
apiVersion: batch/v1 # 版本号kind: Job # 类型metadata: # 元数据 name: # rs名称 namespae: # 所属命名空间 labels: # 标签 controller: jobspec: # 详情描述 completions: 1 # 指定Job需要成功运行Pod的次数,默认值为1 parallelism: 1 # 指定Job在同一时刻应该并发运行Pod的数量,默认值为1 activeDeadlineSeconds: 30 # 指定Job可运行的时间期限,超过时间还为结束,系统将会尝试进行终止 backoffLimit: 6 # 指定Job失败后进行重试的次数,默认值为6 manualSelector: true # 是否可以使用selector选择器选择pod,默认是false selector: # 选择器,通过它指定该控制器管理哪些Pod matchLabels: # Label匹配规则 app: controller-pod matchExpressions: # Expressions匹配项 - {key: app, operator: In, values: [controller-pod]} template: # 模板,当副本数量不足时,会根据下面的模板创建pod副本 metadata: labels: app: controller-pod spec: restartPolicy: Never # 重启策略只能设置为Never或者OnFailure containers: - name: counter - image: nginx:1.17.1
二、Job控制器实例
2.1 Job控制器实例演示
编辑pc_job.yaml文件,内容如下
apiVersion: v1kind: Namespacemetadata: name: dev---apiVersion: batch/v1kind: Jobmetadata: name: pc-job namespace: devspec: manualSelector: true selector: matchLabels: app: counter-pod template: metadata: labels: app: counter-pod spec: restartPolicy: Never containers: - name: counter image: busybox:1.30 command: ["/bin/sh","-c","for i in 9 8 7 6 5 4 3 2 1; do echo $i;sleep 3;done"]
然后开启另外两个窗口分别使用如下命令监视job和pod的状态变化
# 监视job的窗口 kubectl get job -n dev -o wide -w# 监视pod的窗口
然后使用如下命令创建资源
[root@master pod_controller]# kubectl apply -f pc_job.yamlnamespace/dev createdjob.batch/pc-job created[root@master pod_controller]#
然后可以看到job的变化如下:
[root@master ~]# kubectl get job -n dev -o wide -wNAME COMPLETIONS DURATION AGE CONTAINERS IMAGES SELECTORpc-job 0/1 0s counter busybox:1.30 app=counter-podpc-job 0/1 0s 0s counter busybox:1.30 app=counter-podpc-job 1/1 28s 28s counter busybox:1.30 app=counter-pod
而pod的变化如下:
[root@master ~]# kubectl get pod -n dev -o wide -wNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESpc-job-hn5gj 0/1 Pending 0 0s
2.2 设置总数和并行参数的Job控制器实例
编辑pc_job.yaml文件,内容如下,需要创建6个pod,允许并行执行3个
apiVersion: v1kind: Namespacemetadata: name: dev---apiVersion: batch/v1kind: Jobmetadata: name: pc-job namespace: devspec: manualSelector: true completions: 6 parallelism: 3 selector: matchLabels: app: counter-pod template: metadata: labels: app: counter-pod spec: restartPolicy: Never containers: - name: counter image: busybox:1.30 command: ["/bin/sh","-c","for i in 9 8 7 6 5 4 3 2 1; do echo $i;sleep 3;done"]
然后开启另外两个窗口分别使用如下命令监视job和pod的状态变化
# 监视job的窗口 kubectl get job -n dev -o wide -w# 监视pod的窗口
然后使用如下命令创建资源
[root@master pod_controller]# kubectl apply -f pc_job.yamlnamespace/dev createdjob.batch/pc-job created[root@master pod_controller]#
job的变化过程如下:
[root@master ~]# kubectl get job -n dev -o wide -wNAME COMPLETIONS DURATION AGE CONTAINERS IMAGES SELECTORpc-job 0/6 0s counter busybox:1.30 app=counter-podpc-job 0/6 0s 0s counter busybox:1.30 app=counter-podpc-job 1/6 28s 28s counter busybox:1.30 app=counter-podpc-job 2/6 28s 28s counter busybox:1.30 app=counter-podpc-job 3/6 29s 29s counter busybox:1.30 app=counter-podpc-job 4/6 57s 57s counter busybox:1.30 app=counter-podpc-job 5/6 57s 57s counter busybox:1.30 app=counter-podpc-job 6/6 57s 57s counter busybox:1.30 app=counter-pod
pod的变化过程如下:
[root@master ~]# kubectl get pod -n dev -o wide -wNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESpc-job-m7q4d 0/1 Pending 0 0s
可以看出,确实可以实现创建6个任务,同时并发3个执行,总体执行时间大概两个周期即58秒左右即可完成
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~