Migrate to Containers 및 플러그인 업그레이드

이 문서에서는 현재 Migrate to Containers 설치를 버전 1.15.0으로, Migrate to Containers 플러그인을 최신 버전으로 업그레이드하는 방법을 설명합니다.

일반적으로 업그레이드를 수행하기 전에 모든 기존 마이그레이션을 삭제합니다. 현재 마이그레이션을 실행 중이면 완료될 때까지 기다린 후 삭제합니다. 하지만 마이그레이션 소스를 삭제하지 않습니다. 마이그레이션 소스는 업그레이드 프로세스 중에 업데이트됩니다.

migctl을 사용하여 업그레이드 수행

사용하는 업그레이드 프로세스는 migctl을 실행하는 환경에 따라 달라집니다.

  • Google Cloud에서 Google Kubernetes Engine(GKE) 또는 GKE Enterprise 처리 클러스터를 사용할 때 Cloud Shell에서 migctl을 실행합니다.

    Cloud Shell에서 migctl의 최신 릴리스는 자동으로 설치됩니다. 그런 후 처리 클러스터만 업그레이드하면 됩니다.

  • 베어메탈용 Google Distributed Cloud Virtual 처리 클러스터를 사용할 때 관리 워크스테이션에 migctl을 설치하세요.

    먼저 온프렘 관리 워크스테이션에 최신 migctl 출시 버전을 다운로드하고 설치한 후 사용하여 처리 클러스터를 업그레이드합니다.

Migrate to Containers 업그레이드

이전 출시 버전의 Migrate to Containers를 버전 1.15.0로 업그레이드하려면 다음 안내를 따르세요.

  1. 처리 클러스터에 연결합니다.

    Google Cloud용 migctl

    1. Google Cloud 콘솔에서 GKE 메뉴로 이동합니다.

      GKE 메뉴로 이동

    2. 클러스터 목록에서 처리 클러스터로 사용하는 클러스터를 찾아 연결 버튼을 클릭합니다.

    3. 클러스터에 연결 대화상자의 명령줄 액세스 밑에서 Cloud Shell에서 실행을 클릭하여 Cloud Shell에서 연결 명령어를 실행합니다.

      gcloud container clusters get-credentials cluster-name --zone zone-name --project project-name
      

    베어메탈용 Google Distributed Cloud Virtual의 migctl

    1. 클러스터에 연결합니다. 자세한 내용은 Google Cloud 콘솔에서 클러스터 관리를 참조하세요.
  2. 기존 마이그레이션을 확인하고 삭제합니다.

    1. 현재 마이그레이션 나열:

      migctl migration list
      
      NAME                STATUS      CURRENT-OPERATION
      my-migration        Completed   GenerateArtifacts
      another-migration   Running     GenerateMigrationPlan
    2. 다음 명령어를 사용하여 완료된 마이그레이션을 하나씩 모두 삭제합니다.

      migctl migration delete my-migration
    3. 현재 실행 중인 마이그레이션에 대해 위 'a 단계'를 반복하고 완료될 때까지 기다립니다. 그런 후 삭제합니다.

  3. migctl version 명령어를 사용하여 현재 버전을 확인합니다. 예를 들면 다음과 같습니다.

    migctl version

    반환:

    Migrate to Containers version: 1.10.1
  4. 클러스터를 업그레이드합니다.

    Google Cloud용 migctl

    1. 1.15.0로 업그레이드하기

      1. Cloud Shell에서 다음 명령어를 실행합니다.

        migctl setup upgrade

        명령어:

        • 이전 버전의 Migrate to Containers를 제거하고 버전 1.15.0을 설치합니다.

        • 기존 마이그레이션 소스를 버전 1.15.0으로 업그레이드합니다.

    베어메탈용 Google Distributed Cloud Virtual의 migctl

    1. 관리 워크스테이션에 migctl을 배포합니다.

      wget https://modernize-release.storage.googleapis.com/v1.15.0/linux/amd64/migctl
      sudo cp migctl /usr/local/bin/
      sudo chmod +x /usr/local/bin/migctl
      . <(migctl completion bash)
    2. 1.15.0로 업그레이드하기

      1. 업그레이드를 실행합니다.

        migctl setup upgrade --gkeop

        명령어:

        • 이전 버전의 Migrate to Containers를 제거하고 버전 1.15.0을 설치합니다.

        • 기존 마이그레이션 소스를 버전 1.15.0으로 업그레이드합니다.

  5. migctl doctor 명령어를 실행하여 업그레이드를 검사합니다.

    업그레이드가 완료되기 전에 다음과 같은 메시지가 표시될 수 있습니다. 이 경우 업그레이드가 완료될 때까지 몇 분 정도 기다린 후 migctl doctor를 다시 실행합니다.

    migctl doctor
    [✓] Deployment
      [✓] Admission Controller
      [!] Components
        Job controllers-deploy-cert is not ready
        Job controllers-upgrade is not ready
    

    다음 출력 예시에서 체크표시는 Migrate to Containers가 성공적으로 업그레이드되었음을 나타냅니다.

    migctl doctor
    [✓] Deployment
    [✓] Docker registry
    [✓] Artifacts repo
    [✓] Source Status
    

    버전 1.6 이상으로 업그레이드하는 경우 migctl doctor에 이제 Docker registry, Artifacts repo, Source Status 필드가 표시되며 각 항목의 의미는 다음과 같습니다.

  6. 업그레이드가 완료되면 마이그레이션을 다시 만들어야 마이그레이션 소스가 성공적으로 업그레이드되었는지 확인할 수 있습니다. 마이그레이션 만들기를 참조하세요.

Migrate to Containers 플러그인 업그레이드

Migrate to Containers는 플러그인을 사용하여 지원되는 워크로드의 다양한 여정에 대한 현대화 로직을 관리합니다. 최신 버전의 플러그인에서 사용할 수 있는 기능을 사용하려면 플러그인을 업그레이드한 후 새 마이그레이션을 만들어야 합니다. 플러그인을 업그레이드해도 진행 중인 마이그레이션에는 영향을 미치지 않습니다.

플러그인을 최신 버전으로 업그레이드하려면 다음 명령어를 실행합니다.

JOB_NAME=plugins-updater-NAME
kubectl apply -f - <<EOF
apiVersion: batch/v1
kind: Job
metadata:
  name: $JOB_NAME
  namespace: v2k-system
spec:
  backoffLimit: 20
  template:
    spec:
      serviceAccountName: plugins-updater-sa
      containers:
      - name: plugins-updater
        image: us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/plugins-updater:latest
        imagePullPolicy: Always
      restartPolicy: OnFailure
EOF

NAME을 작업 이름에 추가할 문자열로 바꿉니다.

업그레이드 상태를 확인하려면 다음 명령어를 실행합니다.

kubectl get job -n v2k-system  plugins-updater-NAME

NAME을 작업 이름에 추가한 동일한 문자열로 바꿉니다.

아래와 같이 작업 상태가 출력에 표시됩니다.

NAME                                COMPLETIONS   DURATION   AGE
plugins-updater-upgrade             1/1           12s        37s

완료 열에 1/1이 표시되면 작업이 완료되고 플러그인이 업데이트되었음을 의미합니다.

업그레이드가 완료된 후 작업을 삭제하려면 다음 명령어를 실행합니다.

kubectl delete  job -n v2k-system  plugins-updater-NAME

NAME을 작업 이름에 추가한 동일한 문자열로 바꿉니다.

다음 단계