在 cronjob 和部署之间共享 kubernetes 卷

时间:2021-05-20 22:47:11

标签: amazon-web-services kubernetes

我想弄清楚如何在 cronjob 和 kubernetes 部署之间共享数据

我正在运行托管在 AWS EKS 上的 Kubernetes

我创建了一个带有声明的持久卷,并尝试通过 cronjob 和部署容器在声明中循环,但是在 cronjob 按计划运行后,数据仍然不在它所在的另一个容器中应该

我看过一些关于使用 AWS EBS 的帖子,但我不太确定该怎么做

另一个线程谈到了运行不同的调度来获取persistentvolume

        - name: +vars.cust_id+-sophoscentral-logs
          persistentVolumeClaim:
            claimName: +vars.cust_id+-sophoscentral-logs-pvc

    ---
kind: PersistentVolume
apiVersion: v1
metadata:
  name: +vars.cust_id+-sp-logs-pv
spec:
  persistentVolumeReclaimPolicy: Retain
  claimRef:
    name: +vars.cust_id+-sp-logs-pvc
    namespace: +vars.namespace+
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: "/var/lib/+vars.cust_id+-sophosdata"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: +vars.cust_id+-sp-logs-pvc
  namespace: +vars.namespace+
  labels:
    component: sp
spec:
  accessModes:
      - ReadWriteMany
  resources:
    requests:
        storage: 1Gi
  volumeName: +vars.cust_id+-sp-logs-pv

1 个答案:

答案 0 :(得分:0)

EBS 卷不支持 ReadWriteMany 作为模式。如果您想留在 AWS 生态系统中,则需要使用 EFS,它是一种托管 NFS 产品。其他选项包括自托管 Ceph 或 Gluster 及其相关的 CephFS 和 GlusterFS 工具。

如果可能,通常应该避免这种情况。 NFS 带来了一系列问题,虽然 CephFS(可能还有 GlusterFS,但我个人不太熟悉)更好,但它与“正常”网络块设备卷仍然相去甚远。在将其包含在系统设计中之前,请确保您了解它带来的限制。

相关问题