gpt4 book ai didi

Kubernetes:是否可以将卷安装到作为 CronJob 运行的容器?

转载 作者:行者123 更新时间:2023-12-02 17:29:24 25 4
gpt4 key购买 nike

我正在尝试创建一个 Kubernetes CronJob 来每分钟运行一个应用程序。

先决条件是我需要将应用程序代码放入 CronJob 中运行的容器中。我认为最好的方法是使用持久卷(pvclaim),然后定义该卷并将其安装到容器中。我已经通过在 Pod 中运行的容器成功完成了此操作,但在 CronJob 中似乎不可能?这是我尝试的配置:

apiVersion: batch/v2alpha1
kind: CronJob
metadata:
name: update_db
spec:
volumes:
- name: application-code
persistentVolumeClaim:
claimName: application-code-pv-claim
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: update-fingerprints
image: python:3.6.2-slim
command: ["/bin/bash"]
args: ["-c", "python /client/test.py"]
restartPolicy: OnFailure

对应的错误:

error: error validating "cron-applications.yaml": error validating data: found invalid field volumes for v2alpha1.CronJobSpec; if you choose to ignore these errors, turn validation off with --validate=false

我找不到任何资源表明这是可能的。那么,如果不可能,如何解决将应用程序代码放入正在运行的 CronJob 中的问题?

最佳答案

一个CronJob使用 PodTemplate 与基于 Pod 的其他所有内容一样,并且可以使用卷。您将 Volume 规范直接放置在 CronJobSpec 中,而不是 PodSpec 中。 ,像这样使用它:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: update-db
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: update-fingerprints
image: python:3.6.2-slim
command: ["/bin/bash"]
args: ["-c", "python /client/test.py"]
volumeMounts:
- name: application-code
mountPath: /where/ever
restartPolicy: OnFailure
volumes:
- name: application-code
persistentVolumeClaim:
claimName: application-code-pv-claim

关于Kubernetes:是否可以将卷安装到作为 CronJob 运行的容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46578331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com