Kubernetes job

job的restart策略只能是:
1. Nerver 只要任务没有完成,则是新创建pod运行,直到job完成会产生多个pod
2. OnFailure 只要pod没有完成,则会重启pod,直到job完成
参数:
parallelism: 1 一次性运行pod的个数
completions: 1 有一个pod运行成功
backoffLimit: 6 失败pod的极限次数
job启动失败的情况下,job必须要完成一次:
1.如果restart策略设置为Nerver,则不断生成新的pod来执行job的工作,不会重启
2.如果restart策略设置为OnFailure,则会不断重启pod,直到完成一次。
应用-job
apiVersion: batch/v1
kind: Job
metadata:
  name: job1
spec:
  backoffLimit: 6
  completions: 1
  parallelism: 1
  template:
    metadata:
      name: pi
    spec:
      containers:
      - name: hello
        image: docker.io/busybox
        command: ["echo","hello world!"]
      restartPolicy: Never

应用-cronjob

1.启用cronjob

vim /etc/kubernetes/manifests/kube-apiserver.yaml
#添加
- --runtime-config=batch/v2alpha1=true
#重启服务
systemctl restart kubelet.service
#验证
kubectl api-versions
image.png

2.创建cronjob,apiVersion为之前kube-apiserver.yaml中添加启用的

apiVersion: batch/v2alpha1
kind: CronJob
metadata:
  name: job2
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers: 
          - name: hello
            image: docker.io/busybox
            command: ["echo","hello world!"]
          restartPolicy: OnFailure

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。