Kubernetes-计划任务

目录

  1. JOB
trnuser@k8s:~/pod/job$ cat job.yaml 
apiVersion: batch/v1
kind: Job
metadata:
  creationTimestamp: null
  name: job1
spec:
  backoffLimit: 12  # 最多尝试运行POD的最大次数
  completions: 6    # 期望完成次数
  parallelism: 2    # 并行POD数量
  template:
    metadata:
      name: job1
    spec:
      containers:
      - name: hello
        image: busybox
        imagePullPolicy: IfNotPresent
        command: ["sh", "-c","echo hello world!"]
      restartPolicy: OnFailure  # Never 任务失败  创建新的POD , # OnFailure 任务失败  重启pod
  • 运行pi后2000位
apiVersion: batch/v1
kind: Job
metadata:
  creationTimestamp: null
  name: job2
spec:
  template:
    metadata:
      creationTimestamp: null
    spec:
      containers:
      - command:
        - perl
        - -Mbignum=bpi
        - -wle
        - print bpi(2000)
        image: perl
        imagePullPolicy: IfNotPresent
        name: job2
        resources: {}
      restartPolicy: Never
status: {}
  1. cronjob:周期性任务
  • 修改kube-apiserver.yaml,添加周期任务功能
sudo vim /etc/kubernetes/manifests/kube-apiserver.yaml
---
apiVersion: v1
kind: Pod
metadata:
  annotations:
    kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint: 10.250.101.60:6443
  creationTimestamp: null
  labels:
    component: kube-apiserver
    tier: control-plane
  name: kube-apiserver
  namespace: kube-system
spec:
  containers:
  - command:
    - kube-apiserver
#    - --basic-auth-file=/etc/kubernetes/user.txt
#    - --runtime-config=batch/v2alpha1=true   ## 添加部分
    - --advertise-address=10.250.101.60
    - --allow-privileged=true
    - --authorization-mode=Node,RBAC
    - --client-ca-file=/etc/kubernetes/pki/ca.crt
    - --enable-admission-plugins=NodeRestriction
    - --enable-bootstrap-token-auth=true
    - --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt
    - --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt
    - --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key
    - --etcd-servers=https://127.0.0.1:2379
    - --insecure-port=0
    - --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt
    - --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key
----
systemctl restart kubelet
  • CronJob
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  creationTimestamp: null
  name: test-job
spec:
  jobTemplate:
    metadata:
      creationTimestamp: null
      name: test-job
    spec:
      template:
        metadata:
          creationTimestamp: null
        spec:
          containers:
          - image: busybox
            name: test-job
            imagePullPolicy: IfNotPresent
            command: ["sh","-c","echo 'hello'; sleep 100"]
            resources: {}
          restartPolicy: OnFailure
  schedule: '*/1 * * * *'
status: {}
posted @ 2021-03-12 14:23  独孤云翔  阅读(97)  评论(0)    收藏  举报