마이그레이션 계획 만들기

마이그레이션을 만들어 VM 마이그레이션을 시작합니다. 이렇게 하면 마이그레이션 계획 객체가 생성됩니다. 일반적으로 마이그레이션을 실행하기 전에 생성된 계획을 추가로 검토하고 맞춤설정해야 합니다.

마이그레이션은 migctlGoogle Cloud 콘솔을 사용해서 마이그레이션 작업을 수행하고, 마이그레이션 작업 및 상태를 모니터링하는 중앙 객체입니다. 마이그레이션 객체는 Kubernetes 커스텀 리소스 정의(CRD)로 구현되며 마이그레이션 계획의 Kubernetes PersistentVolumeClaim과 같은 추가 리소스와 함께 포함됩니다.

시작하기 전에

  • 마이그레이션 소스 추가
  • 다음 섹션의 설명대로 가상 머신(VM) 인스턴스 ID를 찾습니다.
  • Compute Engine을 마이그레이션 소스로 사용하는 경우 마이그레이션을 만들기 전 소스 VM을 중지합니다. 마이그레이션 객체가 생성된 후 VM을 다시 시작할 수 있습니다.

VM ID 찾기

VM ID를 찾으려면 VM 인벤토리를 탐색하거나 소스 유형에 따라 수동으로 찾습니다.

VM 인벤토리를 사용하여 ID 찾기

  • migctl을 사용하는 경우 다음 명령어를 실행하여 VM 목록을 확인할 수 있습니다.

    migctl source list-vms <name> [ --refresh ] [ --wide ]
    
  • Google Cloud 콘솔을 사용하는 경우 소스 유형으로 이동하면 해당 유형의 모든 VM이 나열된 테이블을 찾을 수 있습니다.

수동으로 ID 찾기

소스 유형에 따라 수동으로 VM ID를 찾을 수 있습니다.

Compute Engine

VMware

  • vmId - 소스 플랫폼에서 알려진 대로 마이그레이션할 VM의 ID 또는 이름입니다. 다음 값 중 하나를 사용할 수 있습니다.

    • VM 이름. VMware 배포 전체에서 각 VM 이름이 고유하다고 확신하는 경우 간단히 VM 이름을 사용하면 됩니다. VM 이름이 중복될 수 있는 경우 아래에 설명 된 대로 VM ID를 사용합니다.

      다음 이미지와 같이 vSphere 웹 클라이언트에서 VM 이름을 가져올 수 있습니다.

    • vSphere의 VM ID(MoRef라고도 함). VM을 선택할 때 vSphere 웹 클라이언트의 URL에서 볼 수 있습니다.

      MoRef는 vSphere의 URL에 있습니다.

      PowerCLI를 사용하여 MoRef를 찾을 수도 있습니다.

이름 지정 요구사항

Migrate to Containers에 마이그레이션을 생성할 때 마이그레이션에 이름을 할당합니다. 이름은 다음 요구사항을 충족해야 합니다.

  • 63자(영문 기준) 이하여야 합니다.
  • 소문자 영숫자 문자 또는 '-'(하이픈)만 포함해야 합니다.
  • 영숫자 문자로 시작해야 합니다.
  • 영숫자 문자로 끝나야 합니다.

지원되는 워크로드

이전 생성

Linux 및 Windows 워크로드

migctl 도구 또는 Google Cloud 콘솔을 사용하여 마이그레이션을 만듭니다.

migctl

  1. VM을 중지합니다. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  2. 마이그레이션을 만듭니다.

    migctl migration create my-migration --source my-src --vm-id my-id --type server-type

    여기서 --vm-id는 소스 유형 콘솔에 표시된 VM 인스턴스의 이름을 지정합니다. 여기서 --type--type=windows-iis-container 또는 linux-system-container입니다.

콘솔

  1. 마이그레이션 소스가 Compute Engine VM이면 Compute Engine VM을 중지합니다. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  2. Google Cloud 콘솔에서 Migrate to Containers 페이지를 엽니다.

    Migrate to Containers 페이지로 이동

  3. 마이그레이션 탭을 클릭하여 사용 가능한 마이그레이션이 포함된 테이블을 표시합니다.

  4. 마이그레이션 만들기를 클릭합니다.

  5. 마이그레이션 이름을 입력합니다.

  6. 마이그레이션 소스 추가에서 만든 마이그레이션 소스를 선택합니다.

  7. 이미지 유형 시스템 컨테이너 또는 Windows IIS 컨테이너워크로드 유형을 설정합니다.

  8. 소스 VM ID를 입력합니다. VM ID 확인에 대한 자세한 내용은 시작하기 전에를 참조하세요.

  9. 마이그레이션 만들기를 클릭합니다.

    마이그레이션이 완료되면 상태 열에 마이그레이션 계획 생성됨이 표시됩니다.

CRD

  1. 마이그레이션을 정의하려면 my-migration.yaml이라는 마이그레이션 파일을 만듭니다.

    이 파일에서 sourceProviderRef 아래의 name 필드는 이전에 생성된 SourceProvider 이름을 지정하고 sourceId 필드는 Compute Engine 인스턴스 이름을 지정합니다. Type--type=windows-iis-container 또는 linux-system-container가 됩니다.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: linux-system-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Compute Engine VM을 마이그레이션하는 경우 VM을 중지하세요. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  3. 파일을 적용합니다.

    kubectl apply -f my-migration.yaml

Tomcat 워크로드

Tomcat 매개변수 지정

CATALINA_BASECATALINA_HOME 값을 수동으로 지정해야 합니다.

migctl

  1. Compute Engine VM을 중지합니다. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  2. 마이그레이션을 만듭니다.

    migctl migration create my-migration --source my-ce-src --vm-id my-id
    --type tomcat-container --parameters catalina-base=/catalina/base/path1:/catalina/base/path2,catalina-home=/catalina/home/path/,java-version=11
    
    • --vm-id는 서비스 콘솔에 표시된 대로 인스턴스의 이름을 지정합니다.
    • catalina-base는 콜론으로 구분된 CATALINA_BASE 값 목록을 지정합니다.
    • catalina-homeCATALINA_HOME 값을 지정합니다.
    • java-version은 컨테이너에서 사용할 Java 버전을 지정하는 선택적 매개변수입니다.

CRD

  1. 마이그레이션을 정의하려면 my-migration.yaml이라는 마이그레이션 파일을 만듭니다.

    이 파일에서 다음 필드를 설정합니다.

    • sourceProvider: 이전에 만든 SourceProvider의 이름을 지정합니다.
    • sourceId: Compute Engine VM 인스턴스의 이름을 지정합니다.
    • parameters: Tomcat 워크로드와 관련된 매개변수를 설정합니다.

    다음은 이러한 필드 값이 설정된 마이그레이션 파일의 예시입니다.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: tomcat-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
         parameters:
         - name: catalina-base
           value: /opt/tomcat
         - name: catalina-home
           value: /opt/tomcat
  2. Compute Engine VM을 마이그레이션하는 경우 VM을 중지하세요. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  3. 파일을 적용합니다.

    kubectl apply -f my-migration.yaml

Websphere Traditional 워크로드

WAS_HOME 지정

WAS_HOME 환경 변수는 /opt/IBM/WebSphere/AppServer/와 같이 WAS 기존 항목이 설치된 위치를 지정합니다. Migrate to Containers는 앱 관련 정보를 가져오는 스크립트를 실행하고 앱 프로필 경로를 결정하기 위해 마이그레이션을 만들 때 이 값을 사용합니다. Migrate to Containers가 설치 폴더를 찾지 못하는 경우 WAS_HOME 값을 설정할 수 있습니다.

migctl

  1. VM을 중지합니다. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  2. 마이그레이션을 만듭니다.

    migctl migration create my-migration --source my-was-src --vm-id my-id
    --type websphere-traditional-container --parameters was-home=/opt/IBM/WebSphere/AppServer/
    

    여기서 --vm-id는 서비스 콘솔에 표시된 대로 인스턴스의 이름을 지정합니다.

CRD

  1. 마이그레이션을 정의하려면 my-migration.yaml이라는 마이그레이션 파일을 만듭니다.

    이 파일에서 다음 필드를 설정합니다.

    • sourceProvider: 이전에 만든 SourceProvider의 이름을 지정합니다.
    • sourceId: Compute Engine VM 인스턴스의 이름을 지정합니다.
    • parameters: WebSphere 워크로드와 관련된 매개변수를 설정합니다.

    다음은 이러한 필드 값이 설정된 마이그레이션 파일의 예시입니다.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: websphere-traditional-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
         parameters:
         - name: was_home
           value: /opt/IBM/WebSphere/AppServer/
  2. Compute Engine VM을 마이그레이션하는 경우 VM을 중지하세요. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  3. 파일을 적용합니다.

    kubectl apply -f my-migration.yaml

JBoss 워크로드

migctl 도구 또는 Google Cloud 콘솔을 사용하여 마이그레이션을 만듭니다.

migctl

  1. VM을 중지합니다. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  2. 마이그레이션을 만듭니다.

    migctl migration create my-migration --source my-src --vm-id my-id --type=jboss-container --parameters jboss-home=/opt/jboss

    여기서 --vm-id는 소스 유형 콘솔에 표시된 VM 인스턴스의 이름을 지정합니다.

콘솔

  1. 마이그레이션 소스가 Compute Engine VM이면 Compute Engine VM을 중지합니다. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  2. Google Cloud 콘솔에서 Migrate to Containers 페이지를 엽니다.

    Migrate to Containers 페이지로 이동

  3. 마이그레이션 탭을 클릭하여 사용 가능한 마이그레이션이 포함된 테이블을 표시합니다.

  4. 마이그레이션 만들기를 클릭합니다.

  5. 마이그레이션 이름을 입력합니다.

  6. 마이그레이션 소스 추가에서 만든 마이그레이션 소스를 선택합니다.

  7. 워크로드 유형JBoss 컨테이너로 설정합니다.

  8. 소스 인스턴스 이름을 입력합니다. 인스턴스 이름 확인에 대한 자세한 내용은 시작하기 전에를 참조하세요.

  9. JBOSS_HOME 매개변수를 설정하고 JBoss 설치 경로를 사용합니다.

  10. 마이그레이션 만들기를 클릭합니다.

    마이그레이션이 완료되면 상태 열에 마이그레이션 계획 생성됨이 표시됩니다.

CRD

  1. 마이그레이션을 정의하려면 my-migration.yaml이라는 마이그레이션 파일을 만듭니다.

    이 파일에서 sourceProviderRef 아래의 name 필드는 이전에 생성된 SourceProvider 이름을 지정하고 sourceId 필드는 Compute Engine 인스턴스 이름을 지정합니다. type 필드에 jboss-container를 입력합니다. discoveryParameters 아래에 검색 매개변수 목록을 추가할 수 있습니다. 각 discoveryParameters 매개변수에는 namevalue라는 2가지 속성이 있습니다. JBoss 마이그레이션을 만드는 경우 value 값으로 JBoss 홈 경로를 지정하는 jboss-home이라는 discoveryParameters 매개변수가 필수입니다.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
      name: my-migration
      namespace: v2k-system
    spec:
      type: jboss-container2
      discoveryParameters:
      - name: jboss-home
        value: /path-to-jboss-home
      sourceSnapshotTemplate:
        spec:
          sourceProviderRef:
            name: my-ce-src
          sourceId: my-id
    
  2. Compute Engine VM을 마이그레이션하는 경우 VM을 중지하세요. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  3. 파일을 적용합니다.

    kubectl apply -f my-migration.yaml

Apache 워크로드

migctl 도구 또는 Google Cloud 콘솔을 사용하여 마이그레이션을 만듭니다.

migctl

  1. VM을 중지합니다. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  2. 마이그레이션을 만듭니다.

    migctl migration create my-migration --source my-src --vm-id my-id --type=apache-container

    여기서 --vm-id는 소스 유형 콘솔에 표시된 VM 인스턴스의 이름을 지정합니다.

콘솔

  1. 마이그레이션 소스가 Compute Engine VM이면 Compute Engine VM을 중지합니다. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  2. Google Cloud 콘솔에서 Migrate to Containers 페이지를 엽니다.

    Migrate to Containers 페이지로 이동

  3. 마이그레이션 탭을 클릭하여 사용 가능한 마이그레이션이 포함된 테이블을 표시합니다.

  4. 마이그레이션 만들기를 클릭합니다.

  5. 마이그레이션 이름을 입력합니다.

  6. 마이그레이션 소스 추가에서 만든 마이그레이션 소스를 선택합니다.

  7. 워크로드 유형Apache 컨테이너로 설정합니다.

  8. 소스 VM ID를 입력합니다. VM ID 확인에 대한 자세한 내용은 시작하기 전에를 참조하세요.

  9. 마이그레이션 만들기를 클릭합니다.

    마이그레이션이 완료되면 상태 열에 마이그레이션 계획 생성됨이 표시됩니다.

CRD

  1. 마이그레이션을 정의하려면 my-migration.yaml이라는 마이그레이션 파일을 만듭니다.

    이 파일에서 sourceProviderRef 아래의 name 필드는 이전에 생성된 SourceProvider 이름을 지정하고 sourceId 필드는 Compute Engine 인스턴스 이름을 지정합니다. type 필드에 apache-container를 입력합니다.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: apache-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Compute Engine VM을 마이그레이션하는 경우 VM을 중지하세요. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  3. 파일을 적용합니다.

    kubectl apply -f my-migration.yaml

WordPress 워크로드

migctl 도구 또는 Google Cloud 콘솔을 사용하여 마이그레이션을 만듭니다.

migctl

  1. VM을 중지합니다. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  2. 마이그레이션을 만듭니다.

    migctl migration create my-migration --source my-src --vm-id my-id --type=wordpress-container

    여기서 --vm-id는 소스 유형 콘솔에 표시된 VM 인스턴스의 이름을 지정합니다.

콘솔

  1. 마이그레이션 소스가 Compute Engine VM이면 Compute Engine VM을 중지합니다. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  2. Google Cloud 콘솔에서 Migrate to Containers 페이지를 엽니다.

    Migrate to Containers 페이지로 이동

  3. 마이그레이션 탭을 클릭하여 사용 가능한 마이그레이션이 포함된 테이블을 표시합니다.

  4. 마이그레이션 만들기를 클릭합니다.

  5. 마이그레이션 이름을 입력합니다.

  6. 마이그레이션 소스 추가에서 만든 마이그레이션 소스를 선택합니다.

  7. 워크로드 유형WordPress 컨테이너로 설정합니다.

  8. 소스 VM ID를 입력합니다. VM ID 확인에 대한 자세한 내용은 시작하기 전에를 참조하세요.

  9. 마이그레이션 만들기를 클릭합니다.

    마이그레이션이 완료되면 상태 열에 마이그레이션 계획 생성됨이 표시됩니다.

CRD

  1. 마이그레이션을 정의하려면 my-migration.yaml이라는 마이그레이션 파일을 만듭니다.

    이 파일에서 sourceProviderRef 아래의 name 필드는 이전에 생성된 SourceProvider 이름을 지정하고 sourceId 필드는 Compute Engine 인스턴스 이름을 지정합니다. type 필드에 wordpress-container를 입력합니다.

    apiVersion: anthos-migrate.cloud.google.com/v1
    kind: Migration
    metadata:
     name: my-migration
     namespace: v2k-system
    spec:
     type: wordpress-container
     sourceSnapshotTemplate:
       spec:
         sourceProviderRef:
           name: my-ce-src
         sourceId: my-id
  2. Compute Engine VM을 마이그레이션하는 경우 VM을 중지하세요. 마이그레이션을 만들려면 VM이 중지되어야 합니다. 마이그레이션이 완료되면 VM을 다시 시작할 수 있습니다.

  3. 파일을 적용합니다.

    kubectl apply -f my-migration.yaml

마이그레이션 만들기 모니터링

migctl 도구나 Google Cloud 콘솔을 사용하여 마이그레이션 생성 진행 상황을 모니터링합니다.

migctl

  1. 마이그레이션 생성 단계가 종료될 때까지 기다립니다.

    migctl migration status my-migration
    
    NAME           CURRENT-OPERATION      PROGRESS   STEP                   STATUS   AGE
    my-migration   GenerateMigrationPlan  [1/3]      CreateSourceSnapshots  Running  13s 
  2. Compute Engine VM을 마이그레이션하는 경우 VM을 다시 시작하세요. 이 단계 후에는 중지된 VM이 필요하지 않습니다.

콘솔

마이그레이션 상태에 마이그레이션이 표시되면 다음 단계로 넘어갈 수 있습니다.

  1. Google Cloud 콘솔에서 Migrate to Containers 페이지를 엽니다.

    Migrate to Containers 페이지로 이동

  2. 마이그레이션 탭을 클릭하여 사용 가능한 마이그레이션이 포함된 테이블을 표시합니다.

  3. 다음 방법으로 마이그레이션 상태를 확인합니다.

    • 마이그레이션 행의 상태 열을 봅니다.

    • 마이그레이션 이름을 클릭합니다. 마이그레이션 세부정보 페이지가 열립니다. 모니터링 탭을 클릭하여 자세한 상태를 보거나 이벤트 탭을 클릭하여 마이그레이션 이벤트를 봅니다.

  4. 마이그레이션이 완료되면 상태마이그레이션 계획 생성됨이 표시됩니다.

  5. Compute Engine VM을 마이그레이션하는 경우 VM을 다시 시작하세요. 이 단계 후에는 중지된 VM이 필요하지 않습니다.

CRD

kubectl을 사용하여 필요한 필드에 JSONPath를 지정하여 MigrationStatus 정보 및 상태를 가져옵니다.

  1. 마이그레이션 생성 단계가 종료될 때까지 기다립니다.

    kubectl wait 명령어 두 개를 사용합니다. 하나는 'Ready' 조건을 대기하고 다른 하나는 'Failed' 조건을 기다립니다. 첫 번째 조건이 충족될 때까지 마이그레이션 계획 생성 단계가 실행됩니다.

    unset pids; for cond in "Ready" "Failed"; do kubectl wait migrations.anthos-migrate.cloud.google.com my-migration -n v2k-system --for condition=$cond --timeout=15m & pids+=($!); done; wait -p met_pid -n ${pids[@]}
    kill ${pids[@]/$met_pid} # terminate the process that did not complete.
    

    대기 명령어가 완료되면 작업이 완료된 것이므로 다음 단계로 이동할 수 있습니다.

  2. 마이그레이션 계획 상태를 가져옵니다.

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system -o jsonpath={.status.conditions[?(@.type==\"Ready\")].status} my-migration

    마이그레이션 계획이 준비되면 True를 반환하고 실패한 경우 False를 반환합니다.

  3. 마이그레이션 생성 단계가 실패하면 다음 명령어를 사용하여 오류 메시지를 가져옵니다.

    kubectl get migrations.anthos-migrate.cloud.google.com -n v2k-system  -o jsonpath={.status.conditions[?(@.type=="Ready")].message} my-migration

  4. Compute Engine VM을 마이그레이션하는 경우 VM을 다시 시작하세요. 이 단계 후에는 중지된 VM이 필요하지 않습니다.

다음 단계