K8s - Kubernetes使用详解5(运行CronJob样例)
Linux 中有 cron 程序可以定时执行任务,而 Kubernetes 的 CronJob 则提供了类似的功能,可以定时执行 Job。
(2)在启动参数中加上 --runtime-config=batch/v2alpha1=true 即可。![](/blog_uploads/201905/2019051615105086873.png)
(3)保存退出后执行如下命令重启 kubelet 服务:
(2)接着执行如下命令创建 CronJob:
(3)执行如下命令可以查看 CronJob 的状态:
(4)等待几分钟,然后执行如下命令查看 Job 的执行情况。可以看到每隔一分钟就会启动一个 Job。
(5)通过 kubectl logs 命令可查看某个 Job 的运行日志:
五、运行 CronJob
1,准备工作
(1)Kubernetes 默认没有 enable CronJob 功能,需要在 kube-apiserver 中加入这个功能。首先我们修改 kube-apiserver 的配置文件:
vi /etc/kubernetes/manifests/kube-apiserver.yaml
(2)在启动参数中加上 --runtime-config=batch/v2alpha1=true 即可。
![](/blog_uploads/201905/2019051615105086873.png)
systemctl restart kubelet.service
(4)kubelet 会自动重启 kube-apiserver Pod。重启后通过如下命令可以看到现在已经支持 batch/v2alpha1:
kubectl api-versions
![](/blog_uploads/201905/2019051615120851715.png)
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
![](/blog_uploads/201905/2019051615223616659.png)
(4)等待几分钟,然后执行如下命令查看 Job 的执行情况。可以看到每隔一分钟就会启动一个 Job。
kubectl get jobs
![](/blog_uploads/201905/2019051615264017484.png)
(5)通过 kubectl logs 命令可查看某个 Job 的运行日志:
![](/blog_uploads/201905/2019051615364210680.png)