【问题标题】:How can I properly provision a volume for argo?如何为 argo 正确配置卷?
【发布时间】:2021-02-21 19:59:12
【问题描述】:

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

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

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

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

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

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

问题:如何正确配置卷?

更新:

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

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

我还在 Kubernetes 配置中添加了一个新用户和上下文,但无济于事。

更新:

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

apiVersion: rbac.authorization.k8s.io/v1                                                                                                                                                                         kind: Role                                                                                                                                                                                                       metadata:                                                                                                                                                                                                          name: workflow                                                                                                                                                                                                   namespace: argo                                                                                                                                                                                                rules:                                                                                                                                                                                                           - apiGroups:                                                                                                                                                                                                       - ""                                                                                                                                                                                                             resources:                                                                                                                                                                                                       - pods                                                                                                                                                                                                           verbs:                                                                                                                                                                                                           - get                                                                                                                                                                                                            - list                                                                                                                                                                                                           - watch                                                                                                                                                                                                          - create                                                                                                                                                                                                         - update                                                                                                                                                                                                         - patch                                                                                                                                                                                                          - delete                                                                                                                                                                                                       - apiGroups:                                                                                                                                                                                                       - ""                                                                                                                                                                                                             resources:                                                                                                                                                                                                       - pods/log                                                                                                                                                                                                       verbs:                                                                                                                                                                                                           - get                                                                                                                                                                                                            - list                                                                                                                                                                                                           - watch                                                                                                                                                                                                          - create                                                                                                                                                                                                         - update                                                                                                                                                                                                         - patch                                                                                                                                                                                                          - delete                                                                                                                                                                                                       - apiGroups:                                                                                                                                                                                                       - ""                                                                                                                                                                                                             resources:                                                                                                                                                                                                        - persistentvolumeclaims                                                                                                                                                                                        verbs:                                                                                                                                                                                                           - get                                                                                                                                                                                                            - list                                                                                                                                                                                                           - watch                                                                                                                                                                                                          - create                                                                                                                                                                                                         - update                                                                                                                                                                                                         - patch                                                                                                                                                                                                          - delete 

【问题讨论】:

    标签: persistent-volume-claims argo-workflows


    【解决方案1】:

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

    【讨论】:

    • 我创建了以下角色,现在错误消息是我无法创建资源(与之前的“get”相比)。请注意,该角色确实具有“创建”权限。我还是弄错了:(
    • 感谢您的回复!你是对的,它似乎是一个 RBAC 问题,所以我接受这个答案并创建一个新问题。我试图详细说明上述持续存在的问题,但没有出现。
    猜你喜欢
    • 2018-12-01
    • 1970-01-01
    • 2018-12-17
    • 2018-06-24
    • 2021-10-24
    • 2023-03-23
    • 2017-05-18
    • 2018-05-27
    • 1970-01-01
    相关资源
    最近更新 更多