在kubernetes中同步外部文件系统上文件的计划作业

在kubernetes中同步外部文件系统上文件的计划作业,kubernetes,kubernetes-cronjob,mounted-volumes,Kubernetes,Kubernetes Cronjob,Mounted Volumes,有没有一种方法可以运行一个计划的作业,该作业会定期拉取装载的共享卷上的一些文件 我试过cronjob,但显然它不应该是外部文件系统 提前感谢。CronJobs应该能够像装载任何其他生成POD的资源一样装载PVC,您只需在容器模板下添加一个volumeMounts部分,然后在模板下添加一个volume部分 如下所示: apiVersion: batch/v1beta1 kind: CronJob metadata: name: example-name spec: schedule: '0

有没有一种方法可以运行一个计划的作业,该作业会定期拉取装载的共享卷上的一些文件

我试过cronjob,但显然它不应该是外部文件系统


提前感谢。

CronJobs应该能够像装载任何其他生成POD的资源一样装载PVC,您只需在
容器
模板下添加一个
volumeMounts
部分,然后在
模板
下添加一个
volume
部分

如下所示:

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
当CronJob的Pod生成时,它应该装载
示例声明
PVC到CronJob的Pod

基本上有两个部分。。在每个容器volumeMounts下,列出容器装载的卷、路径和其他一些配置。所有volumeMounts条目都应该在volumes部分中定义一次,该部分将名称(作为规范的键)和声明或空目录关联起来

至于创建PVC,让我将文档()链接到您

基本上,您要做的是创建一个持久性卷,该卷指向已装入的共享卷(它是什么,nfs存储?声明稍有更改,具体取决于您要装入的内容),然后在将绑定到PV的CronJob的同一命名空间中创建一个声明(PVC)


如果您不确定各种对象的正确缩进或放置位置,请查看实用的API参考文档()

CronJobs应该能够像任何其他生成POD的资源一样安装PVC,您只需在
容器
模板下添加一个
volumeMounts
部分,然后是
模板下的
部分

如下所示:

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
当CronJob的Pod生成时,它应该装载
示例声明
PVC到CronJob的Pod

基本上有两个部分。。在每个容器volumeMounts下,列出容器装载的卷、路径和其他一些配置。所有volumeMounts条目都应该在volumes部分中定义一次,该部分将名称(作为规范的键)和声明或空目录关联起来

至于创建PVC,让我将文档()链接到您

基本上,您要做的是创建一个持久性卷,该卷指向已装入的共享卷(它是什么,nfs存储?声明稍有更改,具体取决于您要装入的内容),然后在将绑定到PV的CronJob的同一命名空间中创建一个声明(PVC)


如果您不确定各种对象的正确缩进或放置位置,请查看实用API参考文档()

外部文件系统是什么意思?cronjob有一个Pod模板,它可以装载卷,如果你有一个pvc的外部文件系统,它肯定可以工作是的,外部文件系统我的意思是pvc有一些文档或示例的链接吗?外部文件系统是什么意思?cronjob有一个可以装载卷的Pod模板,如果你有一个pvc的外部文件系统,它肯定可以工作是的,外部文件系统我的意思是pvc有一些文档或示例的链接吗?我在kubernetes 1.19.7上运行时遇到这个错误:[ValidationError(cronjob.spec.jobTemplate.spec.template.spec):io.k8s.api.core.v1.PodSpec中的未知字段“volumeMounts”,ValidationError(CronJob.spec.jobTemplate.spec):io.k8s.api.batch.v1.JobSpec中的未知字段“volumes”);如果您选择忽略这些错误,请使用--validate=false关闭验证。从错误中,似乎您的缩进错误。volumeMounts应位于CronJob.spec.jobTemplate.spec.template.spec.spec.containers和您的容器(它是一个列表)下,而volume应位于CronJob.spec.jobTemplate.spec.template下。如果你发布你的整个yaml定义,我可以试试,我的可以,我试过了(在v1.18上),但是检查了v1.19的API,应该也可以。我在kubernetes 1.19.7上运行时出现了这个错误:[ValidationError(CronJob.spec.jobTemplate.spec.template.spec.spec.spec):io.k8s.API.core.v1.PodSpec中的未知字段“volumeMounts”,ValidationError(CronJob.spec.jobTemplate.spec):io.k8s.api.batch.v1.JobSpec]中的未知字段“volumes”;如果选择忽略这些错误,请使用--validate=false关闭验证。根据错误,似乎缩进错误。volumeMounts应位于CronJob.spec.jobTemplate.spec.template.spec.containers下和容器下(这是一个列表)而卷应该在CronJob.spec.jobTemplate.spec.template下。如果你发布你的整个yaml定义,我可以尝试一下,我的可以,我尝试过(在v1.18上),但是检查了v1.19的API,应该也可以