Migrate to Containers とプラグインをアップグレードする

このドキュメントでは、現在インストールしている Migrate to Containers をバージョン 1.15.0 にアップグレードし、Migrate to Containers プラグインを最新バージョンにアップグレードする方法について説明します。

通常、アップグレードを行う前に、既存の移行をすべて削除します。現在実行中の移行がある場合は、移行が完了するまで待機してから削除します。ただし、移行元は削除しないでください。移行元は、アップグレード プロセスの一部として更新されます。

migctl を使用してアップグレードを実行する

使用するアップグレード プロセスは、migctl を実行する環境に基づいて決まります。

  • Google Cloud で Google Kubernetes Engine(GKE)または GKE Enterprise の処理クラスタを使用する場合は、Cloud Shellmigctl を実行します。

    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 で connect コマンドを実行します。

      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. 次のコマンドを使用して、完了したすべての移行を 1 つずつ削除します。

      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 registryArtifacts repoSource Status フィールドを表示するようになります。ここで、

    • データ リポジトリが正しく構成されていれば、Docker registryArtifacts repo には [✓] が表示されます。Docker レジストリまたはアーティファクト リポジトリに関連するエラーが発生した場合は、データ リポジトリの定義をご覧ください。

    • Source Status には、最初の移行元を定義するまで [!] が表示されます。詳しくは、移行元の追加(Linux)または移行元の追加(Windows)をご覧ください。

  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 は、ジョブ名に追加した文字列に置き換えます。

次のステップ