现在,我有一个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:
答案 0 :(得分:0)
确保在正确的命名空间中创建了 CronJob -您的pod和pv所在的位置。 请注意,如果您有权访问要在其中存储数据的目录。
实际上,除了使用外部服务之外,我认为没有其他可能性。 最有用的是nfs卷。但是这里有基于服务和外部nfs服务器。 NFS 代表网络文件系统–它是可以通过网络访问的共享文件系统。 NFS必须已经存在– Kubernetes不会运行NFS,只有pod可以访问它。