我想使用 CronJob 在 Kubernetes 内运行 shell 脚本,这是我的 CronJon.yaml 文件:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- /home/admin_/test.sh
restartPolicy: OnFailure
CronJob 已创建( kubectl apply -f CronJob.yaml ) 当我获得 cronjob 列表时,我可以看到 cron 作业( kubectl get cj ),当我运行“kubectl get pods”时,我可以看到 pod 正在创建,但 pod 崩溃了。 谁能帮我学习如何在 Kubernetes 中创建 CronJob 吗?
正如评论中正确指出的那样,您需要提供脚本文件才能通过您的
CronJob
执行它。您可以通过将文件安装到卷中来做到这一点。例如,您的 CronJob
可能如下所示:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: hello
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- /myscript/test.sh
volumeMounts:
- name: script-dir
mountPath: /myscript
restartPolicy: OnFailure
volumes:
- name: script-dir
hostPath:
path: /path/to/my/script/dir
type: Directory
上面的示例展示了如何使用 hostPath 类型的卷来挂载脚本文件。
我需要做同样的任务。有些事情悬而未决。您可以分享您的 yaml 文件来探索吗?