9.4. 마이그레이션 계획 옵션


MigPlan CR(사용자 정의 리소스)에서 구성 요소를 제외, 편집 및 매핑할 수 있습니다.

9.4.1. 리소스 제외

마이그레이션하기 위해 리소스 로드를 줄이거나 다른 도구를 사용하여 이미지 또는 PV를 마이그레이션하기 위해 MTC(Migration Toolkit for Containers) 마이그레이션 계획에서 리소스(예: 이미지 스트림, 영구 볼륨(PV) 또는 서브스크립션)를 제외할 수 있습니다.

기본적으로 MTC는 서비스 카탈로그 리소스 및 OLM(Operator Lifecycle Manager) 리소스를 마이그레이션에서 제외합니다. 이러한 리소스는 현재 마이그레이션에 지원되지 않는 서비스 카탈로그 API 그룹 및 OLM API 그룹의 일부입니다.

절차

  1. MigrationController 사용자 지정 매니페스트를 편집합니다.

    Copy to Clipboard Toggle word wrap
    $ oc edit migrationcontroller <migration_controller> -n openshift-migration
  2. 특정 리소스를 제외하는 매개 변수를 추가하거나 자체 제외 매개 변수가 없는 경우 excluded_resources 매개 변수에 리소스를 추가하여 spec 섹션을 업데이트합니다.

    Copy to Clipboard Toggle word wrap
    apiVersion: migration.openshift.io/v1alpha1
    kind: MigrationController
    metadata:
      name: migration-controller
      namespace: openshift-migration
    spec:
      disable_image_migration: true 
    1
    
      disable_pv_migration: true 
    2
    
      ...
      excluded_resources: 
    3
    
      - imagetags
      - templateinstances
      - clusterserviceversions
      - packagemanifests
      - subscriptions
      - servicebrokers
      - servicebindings
      - serviceclasses
      - serviceinstances
      - serviceplans
      - operatorgroups
      - events
      - events.events.k8s.io
    1
    마이그레이션에서 이미지 스트림을 제외하려면 disable_image_migration: true를 추가합니다. excluded_resources 매개 변수를 편집하지 마십시오. MigrationController Pod가 다시 시작되면 imagestreamsexcluded_resources 에 추가됩니다.
    2
    마이그레이션 계획에서 PV를 제외하려면 disable_pv_migration: true를 추가합니다. excluded_resources 매개 변수를 편집하지 마십시오. MigrationController Pod가 다시 시작되면 persistentvolumespersistentvolumeclaimsexcluded_resources 에 추가됩니다. PV 마이그레이션을 비활성화하면 마이그레이션 계획을 생성할 때 PV 검색도 비활성화됩니다.
    3
    OpenShift Container Platform 리소스를 excluded_resources 목록에 추가할 수 있습니다. 기본 제외 리소스를 삭제하지 마십시오. 이러한 리소스는 마이그레이션에 문제가 있으므로 제외해야 합니다.
  3. 변경 사항이 적용되도록 MigrationController 포드가 다시 시작될 때까지 2분 정도 기다립니다.
  4. 리소스가 제외되었는지 확인합니다.

    Copy to Clipboard Toggle word wrap
    $ oc get deployment -n openshift-migration migration-controller -o yaml | grep EXCLUDED_RESOURCES -A1

    출력에는 제외된 리소스가 포함됩니다.

    출력 예

    Copy to Clipboard Toggle word wrap
        - name: EXCLUDED_RESOURCES
          value:
          imagetags,templateinstances,clusterserviceversions,packagemanifests,subscriptions,servicebrokers,servicebindings,serviceclasses,serviceinstances,serviceplans,imagestreams,persistentvolumes,persistentvolumeclaims

9.4.2. 네임스페이스 매핑

MigPlan CR(사용자 정의 리소스)에서 네임스페이스를 매핑하는 경우 마이그레이션 중에 네임스페이스의 UID 및 GID 범위가 복사되므로 소스 또는 대상 클러스터에서 네임스페이스가 복제되지 않아야 합니다.

두 개의 소스 네임스페이스가 동일한 대상 네임스페이스에 매핑됨

Copy to Clipboard Toggle word wrap
spec:
  namespaces:
    - namespace_2
    - namespace_1:namespace_2

소스 네임스페이스를 동일한 이름의 네임스페이스에 매핑하려면 매핑을 생성할 필요가 없습니다. 기본적으로 소스 네임스페이스와 대상 네임스페이스의 이름은 동일합니다.

잘못된 네임 스페이스 매핑

Copy to Clipboard Toggle word wrap
spec:
  namespaces:
    - namespace_1:namespace_1

올바른 네임 스페이스 참조

Copy to Clipboard Toggle word wrap
spec:
  namespaces:
    - namespace_1

9.4.3. 영구 볼륨 클레임 제외

마이그레이션할 PVC를 제외하고 상태 마이그레이션에 대해 PVC(영구 볼륨 클레임)를 선택합니다. PV(영구 볼륨)가 검색된 후 MigPlan 사용자 정의 리소스(CR)의 spec.persistentVolumes.pvc.selection.action 매개변수를 설정하여 PVC를 제외합니다.

사전 요구 사항

  • MigPlan CR이 Ready 상태입니다.

절차

  • spec.persistentVolumes.pvc.selection.action 매개변수를 MigPlan CR에 추가하고 건너뛰 도록 설정합니다.

    Copy to Clipboard Toggle word wrap
    apiVersion: migration.openshift.io/v1alpha1
    kind: MigPlan
    metadata:
      name: <migplan>
      namespace: openshift-migration
    spec:
    ...
      persistentVolumes:
      - capacity: 10Gi
        name: <pv_name>
        pvc:
    ...
        selection:
          action: skip

9.4.4. 영구 볼륨 클레임 매핑

PVC를 매핑하여 소스 클러스터에서 PV(영구 볼륨 클레임) 데이터를 MigPlan CR의 대상 클러스터에 이미 프로비저닝한 PVC(영구 볼륨 클레임)로 마이그레이션할 수 있습니다. 이 매핑을 사용하면 마이그레이션된 애플리케이션의 대상 PVC가 소스 PVC와 동기화됩니다.

PV가 검색된 후 MigPlan CR(사용자 정의 리소스)에서 spec.persistentVolumes.pvc.name 매개변수를 업데이트하여 PVC를 매핑합니다.

사전 요구 사항

  • MigPlan CR이 Ready 상태입니다.

절차

  • MigPlan CR에서 spec.persistentVolumes.pvc.name 매개변수를 업데이트합니다.

    Copy to Clipboard Toggle word wrap
    apiVersion: migration.openshift.io/v1alpha1
    kind: MigPlan
    metadata:
      name: <migplan>
      namespace: openshift-migration
    spec:
    ...
      persistentVolumes:
      - capacity: 10Gi
        name: <pv_name>
        pvc:
          name: <source_pvc>:<destination_pvc> 
    1
    1
    소스 클러스터에서 PVC와 대상 클러스터에서 PVC를 지정합니다. 대상 PVC가 없으면 생성됩니다. 이 매핑을 사용하여 마이그레이션 중에 PVC 이름을 변경할 수 있습니다.

9.4.5. 영구 볼륨 속성 편집

MigPlan CR(사용자 정의 리소스)을 생성한 후 MigrationController CR은 PV(영구 볼륨)를 검색합니다. spec.persistentVolumes 블록 및 status.destStorageClasses 블록이 MigPlan CR에 추가됩니다.

spec.persistentVolumes.selection 블록에서 값을 편집할 수 있습니다. spec.persistentVolumes.selection 블록 외부의 값을 변경하는 경우 MigPlan CR이 MigrationController CR에 의해 조정될 때 값을 덮어씁니다.

참고

spec.persistentVolumes.selection.storageClass 매개변수의 기본값은 다음 논리에 따라 결정됩니다.

  1. 소스 클러스터 PV가 Gluster 또는 NFS인 경우 accessMode의 기본값은 cephfs 입니다. accessMode의 경우 ReadWriteMany 또는 cephrbd: ReadWriteOnce.
  2. PV가 Gluster와 NFS가 아니거나 cephfs 또는 cephrbd 를 사용할 수 없는 경우 기본값은 동일한 프로비저너의 스토리지 클래스입니다.
  3. 동일한 프로비저너의 스토리지 클래스를 사용할 수 없는 경우 기본값은 대상 클러스터의 기본 스토리지 클래스입니다.

storageClass 값은 MigPlan CR의 status.destStorageClasses 블록에서 name 매개변수 값으로 변경할 수 있습니다.

storageClass 값이 비어 있으면 마이그레이션 후 PV에 스토리지 클래스가 없습니다. 예를 들어 대상 클러스터의 NFS 볼륨으로 PV를 이동하려는 경우 이 옵션이 적합합니다.

사전 요구 사항

  • MigPlan CR이 Ready 상태입니다.

절차

  • MigPlan CR에서 spec.persistentVolumes.selection 값을 편집합니다.

    Copy to Clipboard Toggle word wrap
    apiVersion: migration.openshift.io/v1alpha1
    kind: MigPlan
    metadata:
      name: <migplan>
      namespace: openshift-migration
    spec:
      persistentVolumes:
      - capacity: 10Gi
        name: pvc-095a6559-b27f-11eb-b27f-021bddcaf6e4
        proposedCapacity: 10Gi
        pvc:
          accessModes:
          - ReadWriteMany
          hasReference: true
          name: mysql
          namespace: mysql-persistent
        selection:
          action: <copy> 
    1
    
          copyMethod: <filesystem> 
    2
    
          verify: true 
    3
    
          storageClass: <gp2> 
    4
    
          accessMode: <ReadWriteMany> 
    5
    
        storageClass: cephfs
    1
    허용되는 값은 move,copy, skip 입니다. 하나의 작업만 지원되는 경우 기본값은 지원되는 작업입니다. 여러 작업이 지원되는 경우 기본값은 copy 입니다.
    2
    허용되는 값은 스냅샷파일 시스템입니다. 기본값은 filesystem 입니다.
    3
    MTC 웹 콘솔에서 파일 시스템 복사에 대한 확인 옵션을 선택하면 verify 매개변수가 표시됩니다. false 로 설정할 수 있습니다.
    4
    MigPlan CR의 status.destStorageClasses 블록에서 name 매개변수 값으로 기본값을 변경할 수 있습니다. 값을 지정하지 않으면 마이그레이션 후 PV에 스토리지 클래스가 없습니다.
    5
    허용되는 값은 ReadWriteOnceReadWriteMany 입니다. 이 값을 지정하지 않으면 기본값은 소스 클러스터 PVC의 액세스 모드입니다. MigPlan CR에서 액세스 모드만 편집할 수 있습니다. MTC 웹 콘솔을 사용하여 편집할 수 없습니다.
추가 리소스

9.4.6. MTC API를 사용하여 Kubernetes 오브젝트의 상태 마이그레이션 수행

모든 PV 데이터를 마이그레이션한 후 MTC(Migration Toolkit for Containers) API를 사용하여 애플리케이션을 구성하는 Kubernetes 오브젝트의 일회성 상태 마이그레이션을 수행할 수 있습니다.

MigPlan 사용자 정의 리소스(CR) 필드를 구성하여 Kubernetes 리소스 목록을 추가 라벨 선택기와 함께 제공하여 이러한 리소스를 추가로 필터링한 다음 MigMigration CR을 생성하여 마이그레이션을 수행하여 수행합니다. MigPlan 리소스는 마이그레이션 후 종료됩니다.

참고

Kubernetes 리소스를 선택하는 것은 API 전용 기능입니다. MigPlan CR을 업데이트하고 CLI를 사용하여 MigMigration CR을 생성해야 합니다. MTC 웹 콘솔은 Kubernetes 오브젝트 마이그레이션을 지원하지 않습니다.

참고

마이그레이션 후 MigPlan CR의 closed 매개변수가 true로 설정됩니다. 이 MigPlan CR에 대해 다른 MigMigration CR을 생성할 수 없습니다.

다음 옵션 중 하나를 사용하여 MigPlan CR에 Kubernetes 오브젝트를 추가합니다.

  • Kubernetes 오브젝트를 includedResources 섹션에 추가합니다. MigPlan CR에 포함된Resources 필드가 지정되면 계획에서 group-kind 목록을 입력으로 사용합니다. 목록에 있는 리소스만 마이그레이션에 포함됩니다.
  • 선택적 labelSelector 매개변수를 추가하여 MigPlan포함된Resources 를 필터링합니다. 이 필드를 지정하면 라벨 선택기와 일치하는 리소스만 마이그레이션에 포함됩니다. 예를 들어 app: frontend 레이블을 필터로 사용하여 SecretConfigMap 리소스 목록을 필터링할 수 있습니다.

절차

  1. Kubernetes 리소스를 포함하도록 MigPlan CR을 업데이트하고, 선택적으로 labelSelector 매개변수를 추가하여 포함된 리소스를 필터링합니다.

    1. Kubernetes 리소스를 포함하도록 MigPlan CR을 업데이트하려면 다음을 수행합니다.

      Copy to Clipboard Toggle word wrap
      apiVersion: migration.openshift.io/v1alpha1
      kind: MigPlan
      metadata:
        name: <migplan>
        namespace: openshift-migration
      spec:
        includedResources:
        - kind: <kind> 
      1
      
          group: ""
        - kind: <kind>
          group: ""
      1
      Kubernetes 오브젝트를 지정합니다(예: Secret 또는 ConfigMap ).
    2. 선택 사항: labelSelector 매개변수를 추가하여 포함된 리소스를 필터링하려면 다음을 수행합니다.

      Copy to Clipboard Toggle word wrap
      apiVersion: migration.openshift.io/v1alpha1
      kind: MigPlan
      metadata:
        name: <migplan>
        namespace: openshift-migration
      spec:
        includedResources:
        - kind: <kind> 
      1
      
          group: ""
        - kind: <kind>
          group: ""
      ...
        labelSelector:
          matchLabels:
            <label> 
      2
      1
      Kubernetes 오브젝트를 지정합니다(예: Secret 또는 ConfigMap ).
      2
      마이그레이션할 리소스의 레이블을 지정합니다(예 : app: frontend ).
  2. 선택한 Kubernetes 리소스를 마이그레이션하기 위해 MigMigration CR을 생성합니다. migPlanRef:에서 올바른 MigPlan 이 참조되었는지 확인합니다.

    Copy to Clipboard Toggle word wrap
    apiVersion: migration.openshift.io/v1alpha1
    kind: MigMigration
    metadata:
      generateName: <migplan>
      namespace: openshift-migration
    spec:
      migPlanRef:
        name: <migplan>
        namespace: openshift-migration
      stage: false
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat, Inc.