在cronjob和pod之间共享数据

时间:2019-06-03 15:12:31

标签: kubernetes kubernetes-cronjob pv

现在,我有一个cronjob下载数据,我想将其共享到另一个容器,该容器在上载新数据时对数据进行处理。我想知道是否有一种无需任何外部服务即可在cronjob pod和主pod之间共享此数据的方法?

我尝试创建一个持久卷,并声明持久卷来共享数据,但是当cronjob下载数据时,即使已安装该卷,它也不会出现在另一个窗格中。

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: download
spec:

  concurrencyPolicy: Forbid
  suspend: false 

  schedule: "* * * * *"
  jobTemplate:
    spec:

      template:
        spec:
          volumes:
            - name: downloaded-data-claim
              persistentVolumeClaim:
                claimName: downloaded-data-claim

#container and image is here where it downloads
kind: PersistentVolume
metadata:
  name: downloaded-data
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  claimRef:
    name: downloaded-data-claim
    namespace: default
  hostPath:
    path: "/tmp/"
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: downloaded-data-claim
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  volumeName: downloaded-data

然后吊舱挂载音量

      volumes:
        - name: downloaded-data-claim 
          presistentVolumeClaim: 
            claimName: downloaded-data-claim
        - name: output
          emptyDir: {}

      containers:

        - name: "rand"
          image: <filler>
          imagePullPolicy: <filler>
          volumeMounts:
            - name: downloaded-data-claim 
              mountPath: /input
            - name: output  
              mountPath: /output  
          resources:

1 个答案:

答案 0 :(得分:0)

确保在正确的命名空间中创建了 CronJob -您的pod和pv所在的位置。 请注意,如果您有权访问要在其中存储数据的目录。

实际上,除了使用外部服务之外,我认为没有其他可能性。 最有用的是nfs卷。但是这里有基于服务和外部nfs服务器。 NFS 代表网络文件系统–它是可以通过网络访问的共享文件系统。 NFS必须已经存在– Kubernetes不会运行NFS,只有pod可以访问它。