我该如何为Argo正确设置卷?

问题描述

我有一个在正确的名称空间中运行的持久卷:

with Pool

,并希望运行包含批量声明模板的工作流:

apiVersion: v1
kind: PersistentVolume
Metadata:
  name: raw-data
spec:
  accessModes:
    - ReadWriteOnce
  capacity:
    storage: 2Gi
  hostPath: 
    path: /data
  storageClassName: storage

我相信我的配置与此处描述的配置一致 https://stackoverflow.com/a/52669115/213269但是,由于我在研究Argo而不是Kubernetes,所以存在一些差异。我收到以下错误

...
  volumeClaimTemplates:
  - Metadata:
      name: raw-data
    spec:
      accessModes: ["ReadWriteOnce"]
      resources:
        requests:
          storage: 2Gi

问题:如何正确配置卷?

更新:

我尝试将持久性卷部署到argo命名空间中,并从工作流中指向它,现在出现以下错误

 Unschedulable: 0/1 nodes are available: 1 pod has unbound immediate PersistentVolumeClaims.

我还向Kubernetes配置添加新用户和上下文,但无济于事。

更新:

添加了以下角色,现在错误已从“ ...用户无法获取资源...”更改为“用户无法创建资源...”。请注意,我的用户确实具有创建持久卷声明的权限。

persistentvolumeclaims "workflow-name" is forbidden: User "system:serviceaccount:argo:argo" cannot get resource "persistentvolumeclaims" in API group "" in the namespace "argo"

解决方法

这似乎是RBAC问题。确保您要提交工作流的服务帐户具有对卷的读取权限。