一、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