×

命名空间的隔离特性意味着用户默认情况下无法在命名空间之间克隆资源。

要允许用户将虚拟机克隆到另一个命名空间,具有cluster-admin角色的用户必须创建一个新的集群角色。将此集群角色绑定到用户,以允许他们将虚拟机克隆到目标命名空间。

创建用于克隆数据卷的RBAC资源

创建一个新的集群角色,允许对datavolumes资源执行所有操作的权限。

先决条件
  • 您必须拥有集群管理员权限。

步骤
  1. 创建ClusterRole清单

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: <datavolume-cloner> (1)
    rules:
    - apiGroups: ["cdi.kubevirt.io"]
      resources: ["datavolumes/source"]
      verbs: ["*"]
    1 集群角色的唯一名称。
  2. 在集群中创建集群角色

    $ oc create -f <datavolume-cloner.yaml> (1)
    1 上一步中创建的ClusterRole清单的文件名。
  3. 创建一个RoleBinding清单,该清单适用于源和目标命名空间,并引用上一步中创建的集群角色。

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: <allow-clone-to-user> (1)
      namespace: <Source namespace> (2)
    subjects:
    - kind: ServiceAccount
      name: default
      namespace: <Destination namespace> (3)
    roleRef:
      kind: ClusterRole
      name: datavolume-cloner (4)
      apiGroup: rbac.authorization.k8s.io
    1 角色绑定的唯一名称。
    2 源数据卷的命名空间。
    3 克隆数据卷的目标命名空间。
    4 上一步中创建的集群角色的名称。
  4. 在集群中创建角色绑定

    $ oc create -f <datavolume-cloner.yaml> (1)
    1 上一步中创建的RoleBinding清单的文件名。