7.16. 가상 머신 복제

7.16.1. 네임스페이스 간에 데이터 볼륨을 복제할 수 있는 사용자 권한 활성화

네임스페이스의 격리 특성으로 인해 기본적으로 사용자는 다른 네임스페이스에 리소스를 복제할 수 없습니다.

사용자가 가상 머신을 다른 네임스페이스에 복제할 수 있도록 하려면 cluster-admin 역할의 사용자가 새 클러스터 역할을 만들어야 합니다. 이 클러스터 역할을 사용자에게 바인딩하면 사용자가 가상 머신을 대상 네임스페이스에 복제할 수 있습니다.

7.16.1.1. 사전 요구 사항

  • cluster-admin 역할의 사용자만 클러스터 역할을 생성할 수 있습니다.

7.16.1.2. 데이터 볼륨 정보

Dataolume 오브젝트는 CDI(Containerized Data Importer) 프로젝트에서 제공하는 사용자 정의 리소스입니다. 데이터 볼륨은 기본 PVC(영구 볼륨 클레임)와 관련된 가져오기, 복제, 업로드 작업을 오케스트레이션합니다. 데이터 볼륨은 OpenShift Virtualization과 통합되며 PVC가 준비되기 전에 가상 머신이 시작되지 않도록 합니다.

7.16.1.3. 데이터 볼륨 복제를 위한 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 매니페스트 파일 이름입니다.