1.job控制器
job控制器:就是一次性任务的pod控制器,pod完成作业后不会重启,其重启策略是:Never
·示例
查看hosts文件
1.资源清单的编写
[root@master job]# cat job.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: job
spec:
template:
spec:
containers:
- name: c1
image: alpine:latest
command: ["cat", "/etc/hosts"]
restartPolicy: Never
#指定标记此次作业失败之前的重复次数,不写默认6次
backoffLimit: 4
2.创建查看资源
[root@master job]# kubectl apply -f .
job.batch/job created
[root@master job]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
job-xxb7c 0/1 Completed 0 77s 10.100.2.6 worker2 <none> <none>
3.查看pod日志
[root@master job]# kubectl logs job-xxb7c
# Kubernetes-managed hosts file.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.100.2.6 job-xxb7c
2.cronjob控制器
job控制器是执行完一次任务,就结束;
cronjob控制器,是基于job控制器,定期频率性执行任务;等同于linux系统中的crontab一样
·示例
1.编辑cronjob资源清单
[root@master job]# cat cronjob.yaml
apiVersion: batch/v1
kind: CronJob
metadata:
name: demooo
spec:
schedule: "* * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: cc
image: alpine:latest
command:
- /bin/sh
- -c
- date; echo this is a demo,please follow this
restartPolicy: OnFailure
2.创建查看资源
[root@master job]# kubectl apply -f cronjob.yaml
cronjob.batch/demooo created
[root@master job]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
demooo-28702694-jf5k6 0/1 Completed 0 2m41s 10.100.1.112 worker1 <none> <none>
demooo-28702695-qjsxk 0/1 Completed 0 101s 10.100.1.114 worker1 <none> <none>
demooo-28702696-zj4jp 0/1 Completed 0 41s 10.100.1.115 worker1 <none> <none>
3.查看pod日志信息
[root@master job]# kubectl logs demooo-28702694-jf5k6
Sun Jul 28 10:14:16 UTC 2024
this is a demo,please follow this