任务:
Linux下的
atd ,crontab

job : 一次性任务, 完成一次任务,状态为 Completed
cronjob : 周期性任务
pod中的进程一定要能够正常执行完成。

job

backoffLimit: 6 # 最多尝试运行pod的最大次数 创建新的POD的上限
completions: 3 # 期望完成的次数, 达到此完成数,则认为job任务完
parallelism: 1 #并行创建Pod数量 期望的完成的pod 大于 并行数
restartPolicy: 重启策略

OnFailure
原地重启,不会产生新的pod

Never
任务失败 创建新的pod
Job 仅适合于 restartPolicy 设置为 OnFailure 或 Never 的 Pod。 注意:如果 restartPolicy 未设置,其默认值是 Always。

副本控制器管理的是那些不希望被终止的 Pod (例如,Web 服务器), Job 管理的是那些希望被终止的 Pod(例如,批处理作业)

[root@master01 jos]# kubectl get pods -o wide
NAME                       READY   STATUS      RESTARTS      AGE     IP               NODE     NOMINATED NODE   READINESS GATES
pi-with-ttl-2rmjf          0/1     Completed   0             2m16s   10.244.196.159   node01   <none>           <none>
pi-with-ttl-b5hpw          0/1     Completed   0             91s     10.244.196.166   node01   <none>           <none>
pi-with-ttl-jtbrl          0/1     Completed   0             2m46s   10.244.196.139   node01   <none>           <none>
pi-with-ttl-rpr5l          0/1     Completed   0             91s     10.244.140.119   node02   <none>           <none>
pi-with-ttl-tht4m          0/1     Completed   0             2m46s   10.244.140.94    node02   <none>           <none>
pi-with-ttl-zxb47          0/1     Completed   0             2m16s   10.244.140.120   node02   <none>           <none>
tom-dep-5cd5954c9-l874k    1/1     Running     1 (17h ago)   17h     10.244.140.96    node02   <none>           <none>
web-test-f47f968f6-wbkv4   1/1     Running     2 (17h ago)   17h     10.244.140.116   node02   <none>           <none>
[root@master01 jos]# cat jobs1.yaml 
apiVersion: batch/v1
kind: Job
metadata:
  name: pi-with-ttl
spec:   
  backoffLimit: 12 #最大尝试创建pod数量
  completions: 6  #6次完成则任务完成
  parallelism: 2  #并行两个pod运行
  ttlSecondsAfterFinished: 100
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(50)"]
      restartPolicy: Never
      
      
      
[root@master01 jos]# kubectl logs pi-with-ttl-5qw2b
3.1415926535897932384626433832795028841971693993751

官网;https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/job/

cronjobs

schedule:

" * * * * * "
分 时 日 月 星期

apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *"
  jobTemplate:   #计划任务模板。
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - date; echo Hello word!!
          restartPolicy: OnFailure
          
          
          
          
    [root@master01 jos]# kubectl logs hello-27969239-m757h 
Tue Mar  7 01:59:11 UTC 2023
Hello word!!
~                                    

官网:https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/cron-jobs/

额!!!!!!!!!!!!
这个其实理解理论知识。重启策略,适用场景,,,然后官网找的到example。改yaml文件应用。 和Linux下的一次性任务,,周期任务类似。

文章作者: emporer
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Emporer-Linux
kubernetes jobs kubernetes
喜欢就支持一下吧