有没有办法运行计划的作业,将一些文件定期拉到已安装的共享卷上?
我试过 cronjob 但显然它不应该是外部文件系统
提前致谢。
有没有办法运行计划的作业,将一些文件定期拉到已安装的共享卷上?
我试过 cronjob 但显然它不应该是外部文件系统
提前致谢。
CronJobs 应该能够像任何其他生成 Pod 的资源一样挂载 PVC,您只需volumeMounts
在模板下添加一个部分container
,然后volume
在template
.
类似于以下内容:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: example-name
spec:
schedule: '0 * * * *'
jobTemplate:
spec:
completions: 1
template:
spec:
containers:
- name: example-container-name
image: your-docker-repo/your-docker-image:the-tag
volumeMounts:
- name: data
mountPath: /internal/path/to/mount/pvc
volumes:
- name: data
persistentVolumeClaim:
claimName: example-claim
这应该example-claim
在 Pod 生成时将 PVC 挂载到 CronJob 的 Pod。
基本上有两个部分..在每个容器volumeMounts下列出了容器安装的卷,在哪个路径和更多配置。所有 volumeMounts 条目都应在将名称(充当规范的键)和声明或空目录关联的卷部分中定义一次。
至于创建 PVC,让我链接您的文档(https://kubernetes.io/docs/concepts/storage/persistent-volumes/)
您想要做的基本上是创建一个持久卷,它指向您已安装的共享卷(它是什么,一个 nfs 存储?声明略有变化,具体取决于您要安装的确切内容),然后是声明(PVC)将绑定到 PV 的 CronJob 的相同命名空间。
如果您不确定各种对象的正确缩进或放置内容的位置,请查看实用的 API 参考文档(https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#cronjob- v1beta1-批处理)