返回 导航

Docker / K8s

hangge.com

K8s - Kubernetes使用详解5(运行CronJob样例)

作者:hangge | 2019-08-01 08:10
Linux 中有 cron 程序可以定时执行任务,而 KubernetesCronJob 则提供了类似的功能,可以定时执行 Job

五、运行 CronJob

1,准备工作

(1)Kubernetes 默认没有 enable CronJob 功能,需要在 kube-apiserver 中加入这个功能。首先我们修改 kube-apiserver 的配置文件:
vi /etc/kubernetes/manifests/kube-apiserver.yaml

(2)在启动参数中加上 --runtime-config=batch/v2alpha1=true  即可。

(3)保存退出后执行如下命令重启 kubelet 服务:
systemctl restart kubelet.service

(4)kubelet 会自动重启 kube-apiserver Pod。重启后通过如下命令可以看到现在已经支持 batch/v2alpha1
kubectl api-versions

2,使用样例

(1)首先编辑一个简单的 CronJob 配置文件 cronjob.yml,内容如下:
注意schedule 指定什么时候运行 Job,其格式与 Linux cron 一致。这里 */1 * * * * 的含义是每一分钟启动一次。
apiVersion: batch/v2alpha1 # 当前 CronJob 的 apiVersion
kind: CronJob # 指明当前资源的类型为 CronJob。
metadata:
  name: hello
spec:
  schedule: "*/1 * * * *" # schedule 指定什么时候运行 Job
  jobTemplate: # jobTemplate 定义 Job 的模板,格式与上文的 Job 一致
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            command: ["echo","Welcome to hangge.com"]
          restartPolicy: OnFailure

(2)接着执行如下命令创建 CronJob
kubectl apply -f cronjob.yml

(3)执行如下命令可以查看 CronJob 的状态:
kubectl get cronjob

(4)等待几分钟,然后执行如下命令查看 Job 的执行情况。可以看到每隔一分钟就会启动一个 Job
kubectl get jobs

(5)通过 kubectl logs 命令可查看某个 Job 的运行日志:
评论

全部评论(0)

回到顶部