一、Job实践¶
1.7.1 Job创建¶
1.7.1.1 方式一:命令行格式¶
1、创建一个job
[root@k8s-master01 ~]# k create job hello --image=registry.cn-hangzhou.aliyuncs.com/abroad_images/busybox:1.28 -- echo "Hello,Job"
2、查看job
[root@k8s-master01 ~]# kg job
NAME STATUS COMPLETIONS DURATION AGE
hello Complete 1/1 8s 9s
回显内容说明:
- DURATION:表示 Job 从开始执行到最后一个 Pod 完成的时间长度
- COMPLETIONS:表示 Job 当前已完成的个数与期望完成次数
3、查看job创建的pod
[root@k8s-master01 ~]# kgp
NAME READY STATUS RESTARTS AGE
hello-n4b5g 0/1 Completed 0 2m16
4、查看执行日志信息
[root@k8s-master01 ~]# k logs -f hello-n4b5g
Hello,Job
5、环境复原
[root@k8s-master01 ~]# k delete job hello
1.7.1.2 方式二:yaml文件¶
1、创建一个job模板文件
[root@k8s-master01 ~]# k create job hello --image=registry.cn-hangzhou.aliyuncs.com/abroad_images/busybox:1.28 --dry-run=client -oyaml -- echo "Hello,Job" > job.yaml
2、重新定义一个job
[root@k8s-master01 ~]# vim job.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: hello
spec:
template:
metadata:
spec:
containers:
- command:
- echo
- Hello,Job
image: registry.cn-hangzhou.aliyuncs.com/abroad_images/busybox:1.28
name: hello
restartPolicy: Never
3、创建job
[root@k8s-master01 ~]# kaf job.yaml
4、查看job
[root@k8s-master01 ~]# kg job
NAME STATUS COMPLETIONS DURATION AGE
hello Complete 1/1 3s 14s
回显内容说明:
- DURATION:表示 Job 从开始执行到最后一个 Pod 完成的时间长度
- COMPLETIONS:表示 Job 当前已完成的个数与期望完成次数
5、查看job创建的pod
[root@k8s-master01 ~]# kgp
NAME READY STATUS RESTARTS AGE
hello-crdzx 0/1 Completed 0 4s
6、查看执行日志信息
[root@k8s-master01 ~]# k logs -f hello-crdzx
Hello,Job
7、环境复原
[root@k8s-master01 ~]# k delete -f job.yaml
1.7.2 Job并发执行¶
假设需要创建一个 Job,这个 Job 可以同时创建两个 Pod 执行任务,当执行成功 5 个表示该 Job 执行成功
1、定义job的yaml文件
关键配置信息
completions: 5 #成功数为5
parallelism: 3 #并发是3
完整配置信息
[root@k8s-master01 JOB]# vim job.yaml
apiVersion: batch/v1
kind: Job
metadata:
labels:
job-name: echo
name: echo
namespace: default
spec:
completions: 5 #成功数为5
parallelism: 2 #并发是2
template:
spec:
containers:
- command:
- sh
- -c
- echo
- Hello, Job
image: registry.cn-hangzhou.aliyuncs.com/zq-demo/nginx:1.14.2
imagePullPolicy: IfNotPresent
name: echo
resources: {}
restartPolicy: Never
2、创建job
[root@k8s-master01 ~]# kaf job.yaml
3、查看资源情况
# 查看pod
[root@k8s-master01 ~]# kgp
NAME READY STATUS RESTARTS AGE
echo-5gj2p 0/1 Completed 0 32s
echo-6f9tq 0/1 Completed 0 25s
echo-8bdr7 0/1 Completed 0 32s
echo-jqsj2 0/1 Completed 0 28s
echo-nvwk8 0/1 Completed 0 28s
# 查看job
[root@k8s-master01 ~]# kg job
NAME STATUS COMPLETIONS DURATION AGE
echo Complete 5/5 10s 89s
4、环境复原
[root@k8s-master01 ~]# k delete -f job.yaml