k8s-pod-创建Job和CronJob资源

 

Job管理

类似于一次性任务,创建POD临时运行一次任务,任务完成后pod状态为completed状态
应用场景:适用于运行测试的任务
restartPolicy:pod重启策略
    Always   总是   默认
    Nerver   从不
    OnFailure   在失败时   $?=0 正常退出   $?不等于0  异常退出
#  创建Job资源

┌─[k8s-master]─[/k8s-learn/job-learn]
└──╼ cat job-test.yaml 
apiVersion: batch/v1  # API版本为batch/v1
kind: Job             #资源类型为Job
metadata:             
    name: test1-job       #定义了Job的名称为test1-job。
spec:                     # pod模板元数据,name字段与job名一样
    template:
        metadata:
             name: test1-job
        spec:
#Pod的重启策略为Never,表示如果Pod中的容器失败,不会自动重启
             restartPolicy: Never
             containers:
             - name: test1-job
               image: centos:7
# imagePullPolicy字段设置为IfNotPresent,表示如果本地没有该镜像,则从远程仓库拉取。
               imagePullPolicy: IfNotPresent
               command:
               - "/bin/bash"
               - "-c"
               - "for i in 1 2 3 4 5; do echo $i; done"

可以查看这个pod测试完这条命令之后的状态
┌─[k8s-master]─[/k8s-learn/job-learn]
└──╼ kubectl get pods
NAME              READY   STATUS      RESTARTS   AGE
test1-job-8g4rl   0/1     Completed   0          10s

1、Completed: 对于Job管理的Pod来说,当Pod成功完成其任务后,它的状态会变成Completed。这意味着Pod中的容器已经执行了它们的预期任务并按计划终止。
2、Failed pod中的容器以及终止,但至少有一个容器因为失败而终止的,即,容器退出状态非零或被系统终止。
#查看日志   测试成功
┌─[k8s-master]─[/k8s-learn/job-learn]
└──╼ kubectl logs test1-job-8g4rl
1
2
3
4
5

cronJob管理  周期性任务   应用场景:数据库备份

第一次running 之后 completed
第二次新建一个Pod  running之后completed   以此类推

# 创建cronJob资源

┌─[k8s-master]─[/k8s-learn/cronJob-learn]
└──╼ cat cronjob-test.yaml 
apiVersion: batch/v1
kind: CronJob
metadata:
    name: test1-cronjob
spec:
    successfulJobsHistoryLimit: 1
    failedJobsHistoryLimit: 1
    # 设置了成功和失败任务的历史记录限制为1,表示只保留最近一次成功或失败的任务记录。
    schedule: '*/1 * * * *'
    # 定义了CronJob的调度策略,这里使用Cron表达式表示每分钟执行一次。
    jobTemplate:
        spec:
            template:
               metadata:
                   name: test1-cronjob  # 指定了Job的名称为test1-cronjob。
               spec:
                   restartPolicy: OnFailure  # 设置了Job的重启策略为OnFailure,表示如果容器失败,则会自动重启。
                   containers:
                   - name: test1
                     image: centos:7
                     imagePullPolicy: IfNotPresent
                     command:
                     - "/bin/bash"
                     - "-c"
                     - "for i in 1 2 3 4 5;do echo $i;done"
# 检查
┌─[k8s-master]─[/k8s-learn/cronJob-learn]
└──╼ kubectl get pod
NAME                           READY   STATUS      RESTARTS   AGE
test1-cronjob-28524234-9ft4x   0/1     Completed   0          6s
# 查看任务是否是一分钟执行一次
┌─[k8s-master]─[/k8s-learn/cronJob-learn]
└──╼ kubectl get pods
NAME                           READY   STATUS              RESTARTS   AGE
test1-cronjob-28524234-9ft4x   0/1     Completed           0          61s
test1-cronjob-28524235-4bqp9   0/1     ContainerCreating   0          1s
#这里显示61s的时候又创建了一个pod来执行这个任务
#再次查看
┌─[k8s-master]─[/k8s-learn/cronJob-learn]
└──╼ kubectl get pods
NAME                           READY   STATUS      RESTARTS   AGE
test1-cronjob-28524235-4bqp9   0/1     Completed   0          6s
# 只显示这次执行任务的pod 而上一次的pod已经被删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值