すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:migrate-controller のインストールと権限の付与

最終更新日:Nov 10, 2025

バックアップセンターを使用して、アプリケーションのバックアップ、復元、および移行を実行できます。 これにより、マルチクラスター環境とハイブリッド環境でのディザスタリカバリとアプリケーションの移行が可能になります。 バックアップセンターを使用するには、migrate-controller コンポーネントをインストールし、関連する権限を付与する必要があります。

前提条件

背景情報

Kubernetes 上で実行されているアプリケーションの数が増えています。 したがって、アプリケーションを定期的にバックアップすることが重要です。 バックアップセンターを使用すると、予期しない状況によってサービスが長時間利用できなくなるのを防ぐことができます。 従来の単一サーバーバックアップやディスクバックアップとは異なり、Kubernetes ベースのアプリケーションバックアップでは、アプリケーションと関連データ、リソースオブジェクト、構成、および名前空間をバックアップできます。

注意事項

  • ACK Serverless Pro クラスターACK Edge クラスター でバックアップセンター機能を使用する場合、インストールと権限構成の要件は ACK マネージドクラスター の要件と同じです。 詳細については、「ACK マネージドクラスターに migrate-controller をインストールし、権限を付与する」をご参照ください。

    ACK Serverless Basic クラスター はサポートされていません。

  • ACK Serverless Pro クラスター または ACK Edge クラスター でバックアップセンター機能を使用する場合、ボリュームをバックアップすることはできません。

  • ACK Edge クラスター では、migrate-controller コンポーネントはデフォルトでクラウド上のノードにインストールされ、内部ネットワーク経由で OSS にアクセスします。

ACK マネージドクラスター

手順 1: migrate-controller をインストールする

説明

バックアップセンター機能を初めて使用する場合は、migrate-controller をインストールする必要があります。 migrate-controller がすでにインストールされている場合は、この手順をスキップしてください。

  1. ACK コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。 左側のウィンドウで、[操作] > [アプリケーションバックアップ] を選択します。

  3. [アプリケーションバックアップ] ページで、[インストール] をクリックします。

    システムは自動的にバックアップボールトを検索します。 バックアップボールトがない場合は、最初に作成してください。 詳細については、「バックアップボールトを作成する」をご参照ください。

    • csdr 名前空間が存在しない場合、システムはコンポーネントのインストール時に csdr という名前のネームスペースを自動的に作成します。 この名前空間を削除しないでください。

    • migrate-controller をすでにインストールしているが、migrate-controller のバージョンが最新でない場合は、[アプリケーションバックアップ] ページで [アップグレード] をクリックします。 システムは自動的に migrate-controller を最新バージョンに更新します。

手順 2: 関連する権限を付与する

  • OSS 権限を付与する

    ACK マネージドクラスター がバックアップボールトとして使用する OSS バケットの名前が cnfs-oss-*** で始まっていることを確認します。 このシナリオでは、OSS 権限を付与する必要はありません。 その他のバケットについては、次のセクションに基づいて、ACK 専用クラスター で関連する OSS 権限を付与する必要があります。 詳細については、「手順 1: 関連する権限を付与する」をご参照ください。

  • ECS スナップショットと Cloud Backup の権限を付与する

    クラスターが ACK マネージドクラスター の場合、ECS スナップショットと Cloud Backup の権限を付与する必要はありません。

手順 3 (オプション): Cloud Backup が API Gateway にアクセスすることを承認する

中国 (Ulanqab)、中国 (Heyuan)、および中国 (Guangzhou) リージョンにあるクラスターのデータをバックアップまたは復元する必要がある場合は、バックアップセンター機能を初めて使用するときに、Alibaba Cloud アカウントを使用して Cloud Backup が API Gateway にアクセスすることを承認する必要があります。

説明

migrate-controller 1.8.4 以降では、Cloud Backup を使用して、中国 (Ulanqab)、中国 (Heyuan)、および中国 (Guangzhou) リージョンにあるクラスターのボリュームをバックアップできます。 バックアップできるボリュームのタイプには、OSS ボリューム、NAS ボリューム、CPFS ボリューム、ローカルボリューム、およびハイブリッドクラウド環境のボリュームが含まれます。

  1. Cloud Backup コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、バックアップ > コンテナーのバックアップ を選択します。

  3. [コンテナバックアップ] ページの左上隅で、クラスターが存在するリージョンを選択します。 この例では、クラスターは中国 (Ulanqab)、中国 (Heyuan)、または中国 (Guangzhou) リージョンにあります。

  4. [Cloud Backup のサービスアクセス承認] ダイアログボックスで、[承認の確認] をクリックします。

ACK 専用クラスター

手順 1: 関連する権限を付与する

重要

migrate-controller 1.7.7 以降のバージョンでは、Alibaba Cloud ディスクのリージョン間復元がサポートされています。 この機能を使用するには、次のカスタムポリシーテンプレートに基づいて、Resource Access Management (RAM) ユーザーに ECS スナップショット権限を付与します。

  1. RAM ユーザーを作成します。 RAM ユーザーの作成方法については、「RAM ユーザーを作成する」をご参照ください。

  2. 次のカスタムポリシーを作成します。 詳細については、「[JSON] タブでのカスタムポリシーの作成」をご参照ください。

    次のポリシーでは、oss:**** は OSS 権限、ecs:**** は ECS スナップショット権限、hbr:****Cloud Backup 権限を示します。

    カスタムポリシーを表示する

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:PutObject",
            "oss:GetObject",
            "oss:DeleteObject",
            "oss:GetBucket",
            "oss:ListObjects",
            "oss:ListBuckets",
            "oss:GetBucketStat"
          ],
          "Resource": "*"  // すべての OSS バケットに対する権限
        },
        {
          "Effect": "Allow",
          "Action": [
            "ecs:CreateSnapshot",
            "ecs:DeleteSnapshot",
            "ecs:DescribeSnapshotGroups",
            "ecs:CreateAutoSnapshotPolicy",
            "ecs:ApplyAutoSnapshotPolicy",
            "ecs:CancelAutoSnapshotPolicy",
            "ecs:DeleteAutoSnapshotPolicy",
            "ecs:DescribeAutoSnapshotPolicyEX",
            "ecs:ModifyAutoSnapshotPolicyEx",
            "ecs:DescribeSnapshots",
            "ecs:DescribeInstances",
            "ecs:CopySnapshot",
            "ecs:CreateSnapshotGroup",
            "ecs:DeleteSnapshotGroup"
          ],
          "Resource": "*" // すべての ECS リソースに対する権限
        },
        {
          "Effect": "Allow",
          "Action": [
            "hbr:CreateVault",
            "hbr:CreateBackupJob",
            "hbr:DescribeVaults",
            "hbr:DescribeBackupJobs2",
            "hbr:DescribeRestoreJobs",
            "hbr:SearchHistoricalSnapshots",
            "hbr:CreateRestoreJob",
            "hbr:AddContainerCluster",
            "hbr:DescribeContainerCluster",
            "hbr:DescribeRestoreJobs2",
            "hbr:CancelBackupJob",
            "hbr:CancelRestoreJob"
          ],
          "Resource": "*" // すべての Cloud Backup リソースに対する権限
        }
      ]
    }

    上記のポリシーは、すべての OSS バケットに対する権限を付与します。 指定された OSS バケットに対する読み取りおよび書き込み権限を付与するには、次のテンプレートに基づいてカスタムポリシーを変更します。 mybackups を OSS バケットの名前に置き換えます。 詳細な OSS 権限の付与方法については、「RAM を使用して OSS 権限を管理する」をご参照ください。

    カスタムポリシーを表示する

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "oss:PutObject",
            "oss:GetObject",
            "oss:DeleteObject",
            "oss:GetBucket",
            "oss:ListObjects",
            "oss:ListBuckets",
            "oss:GetBucketStat"
          ],
          "Resource": [
            "acs:oss:*:*:mybackups", // 指定されたバケット名に変更
            "acs:oss:*:*:mybackups/*" // 指定されたバケット名に変更
          ],
          "Effect": "Allow"
        },
        {
          "Effect": "Allow",
          "Action": [
            "ecs:CreateSnapshot",
            "ecs:DeleteSnapshot",
            "ecs:DescribeSnapshotGroups",
            "ecs:CreateAutoSnapshotPolicy",
            "ecs:ApplyAutoSnapshotPolicy",
            "ecs:CancelAutoSnapshotPolicy",
            "ecs:DeleteAutoSnapshotPolicy",
            "ecs:DescribeAutoSnapshotPolicyEX",
            "ecs:ModifyAutoSnapshotPolicyEx",
            "ecs:DescribeSnapshots",
            "ecs:DescribeInstances",
            "ecs:CopySnapshot",
            "ecs:CreateSnapshotGroup",
            "ecs:DeleteSnapshotGroup"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "hbr:CreateVault",
            "hbr:CreateBackupJob",
            "hbr:DescribeVaults",
            "hbr:DescribeBackupJobs2",
            "hbr:DescribeRestoreJobs",
            "hbr:SearchHistoricalSnapshots",
            "hbr:CreateRestoreJob",
            "hbr:AddContainerCluster",
            "hbr:DescribeContainerCluster",
            "hbr:DescribeRestoreJobs2",
            "hbr:CancelBackupJob",
            "hbr:CancelRestoreJob"
          ],
          "Resource": "*"
        }
      ]
    }
  3. 上記のカスタムポリシーを RAM ユーザーにアタッチします。 詳細については、「RAM ユーザーに権限を付与する」をご参照ください。

  4. RAM ユーザーの AccessKey ペアを作成します。 詳細については、「AccessKey ペアの作成」をご参照ください。

  5. ACK 専用クラスター にシークレットを作成します。

    AccessKey ペアがクラスター内でのみ使用されるようにするには、クラスターに alibaba-addon-secret という名前のシークレットを作成して AccessKey ペアを保存する必要があります。 これにより、情報漏えいのリスクが軽減されます。

    1. 次のコマンドを実行して、csdr という名前のネームスペースを作成します。

      kubectl create ns csdr
    2. 次のコマンドを実行して、alibaba-addon-secret という名前のシークレットを作成します。

      kubectl -n csdr create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'

      <your AccessKey ID><your AccessKey Secret> は、前の手順で取得した AccessKey ペアに置き換えます。

      説明

      migrate-controller コンポーネントをインストールした後にシークレットを作成する場合は、kube-system 名前空間で migrate-controller コンポーネントを再起動します。

手順 2: migrate-controller をインストールする

詳細については、「migrate-controller をインストールする」をご参照ください。

手順 3 (オプション): Cloud Backup が API Gateway にアクセスすることを承認する

中国 (Ulanqab)、中国 (Heyuan)、および中国 (Guangzhou) リージョンにあるクラスターのデータをバックアップまたは復元する場合にのみ承認が必要です。 詳細については、「手順 3 (オプション): Cloud Backup が API Gateway にアクセスすることを承認する」をご参照ください。

登録済みクラスター

重要

Alibaba Cloud ディスクのリージョン間復元をサポートする migrate-controller のバージョンは 1.7.7 以降です。 onectl をバージョン 1.1.0 に更新し、onectl ram-user revoke --addon migrate-controller コマンドを実行して、RAM ユーザーに権限を付与します。

onectl を使用して migrate-controller をインストールし、権限を付与する (推奨)

  1. オンプレミスマシンに onectl をインストールします。 詳細については、「onectl を使用して登録済みクラスターを管理する」をご参照ください。

  2. 次のコマンドを実行して、migrate-controller に RAM 権限を付与します。

    onectl ram-user grant --addon migrate-controller

    期待される出力:

    Ram policy ack-one-registered-cluster-policy-migrate-controller granted to ram user ack-one-user-ce313528c3 successfully.
  3. 次のコマンドを実行して、migrate-controller をインストールします。

    onectl addon install migrate-controller

    期待される出力:

    Addon migrate-controller, version **** installed.

    onectl コマンドは、Alibaba Cloud アカウントに属するすべての OSS バケットに対する権限を付与します。 指定された OSS バケットに権限を付与するには、onectl によって付与された OSS 権限を変更します。 または、「migrate-controller を手動でインストールし、権限を付与する」こともできます。

    OSS 権限の変更: 次の内容に基づいてカスタムポリシーを変更します。 ポリシーの変更方法については、「カスタムポリシーのドキュメントと説明を変更する」をご参照ください。

    説明

    mybackups を OSS バケットの名前に置き換えます。 詳細な OSS 権限の付与方法については、「RAM を使用して OSS 権限を管理する」をご参照ください。

    カスタムポリシーを表示する

    {
      "Version": "1",
      "Statement": [
        {
          "Action": [
            "oss:PutObject",
            "oss:GetObject",
            "oss:DeleteObject",
            "oss:GetBucket",
            "oss:ListObjects",
            "oss:ListBuckets",
            "oss:GetBucketStat"
          ],
          "Resource": [
            "acs:oss:*:*:mybackups", // 指定のバケット名に変更
            "acs:oss:*:*:mybackups/*" // 指定のバケット名に変更
          ],
          "Effect": "Allow"
        },
        {
          "Effect": "Allow",
          "Action": [
            "ecs:CreateSnapshot",
            "ecs:DeleteSnapshot",
            "ecs:DescribeSnapshotGroups",
            "ecs:CreateAutoSnapshotPolicy",
            "ecs:ApplyAutoSnapshotPolicy",
            "ecs:CancelAutoSnapshotPolicy",
            "ecs:DeleteAutoSnapshotPolicy",
            "ecs:DescribeAutoSnapshotPolicyEX",
            "ecs:ModifyAutoSnapshotPolicyEx",
            "ecs:DescribeSnapshots",
            "ecs:DescribeInstances",
            "ecs:CopySnapshot",
            "ecs:CreateSnapshotGroup",
            "ecs:DeleteSnapshotGroup"
          ],
          "Resource": "*"
        },
        {
          "Effect": "Allow",
          "Action": [
            "hbr:CreateVault",
            "hbr:CreateBackupJob",
            "hbr:DescribeVaults",
            "hbr:DescribeBackupJobs2",
            "hbr:DescribeRestoreJobs",
            "hbr:SearchHistoricalSnapshots",
            "hbr:CreateRestoreJob",
            "hbr:AddContainerCluster",
            "hbr:DescribeContainerCluster",
            "hbr:DescribeRestoreJobs2",
            "hbr:CancelBackupJob",
            "hbr:CancelRestoreJob"
          ],
          "Resource": "*"
        }
      ]
    }
  4. (オプション) 登録済みクラスターと OSS バケットが存在するリージョンの内部ネットワークを指すルートを作成する

    登録済みクラスターが Cloud Enterprise Network (CEN)、Express Connect、または VPN 経由で VPC に接続されており、登録済みクラスターが OSS バケットのリージョンに存在する場合、バックアップセンターはダウンロード速度を向上させるために、デフォルトで OSS バケットの内部エンドポイントにアクセスします。 したがって、OSS バケットが存在するリージョンの内部ネットワークを指すルートを作成する必要があります。

  5. (オプション) Cloud Backup が API Gateway にアクセスすることを承認する。 中国 (Ulanqab)、中国 (Heyuan)、および中国 (Guangzhou) リージョンにあるクラスターのデータをバックアップまたは復元する場合にのみ承認が必要です。 詳細については、「手順 3 (オプション): Cloud Backup が API Gateway にアクセスすることを承認する」をご参照ください。

コンソールを使用して migrate-controller をインストールし、権限を付与する

手順 1: 関連する権限を付与する

登録済みクラスターの RAM ユーザーを作成し、クラウド リソースにアクセスするための権限を RAM ユーザーに付与してから、RAM ユーザーの AccessKey ペアを作成する必要があります。

  1. RAM ユーザーを作成します。 RAM ユーザーの作成方法については、「RAM ユーザーを作成する」をご参照ください。

  2. 次のカスタムポリシーを作成します。 詳細については、「[JSON] タブでのカスタムポリシーの作成」をご参照ください。

    次のポリシーでは、oss:**** は OSS 権限、ecs:**** は ECS スナップショット権限、hbr:****Cloud Backup 権限を示します。

    カスタムポリシーを表示する

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oss:PutObject",
            "oss:GetObject",
            "oss:DeleteObject",
            "oss:GetBucket",
            "oss:ListObjects",
            "oss:ListBuckets",
            "oss:GetBucketStat"
          ],
          "Resource": "*" // すべての OSS バケットに対する権限
        },
        {
          "Effect": "Allow",
          "Action": [
            "ecs:CreateSnapshot",
            "ecs:DeleteSnapshot",
            "ecs:DescribeSnapshotGroups",
            "ecs:CreateAutoSnapshotPolicy",
            "ecs:ApplyAutoSnapshotPolicy",
            "ecs:CancelAutoSnapshotPolicy",
            "ecs:DeleteAutoSnapshotPolicy",
            "ecs:DescribeAutoSnapshotPolicyEX",
            "ecs:ModifyAutoSnapshotPolicyEx",
            "ecs:DescribeSnapshots",
            "ecs:DescribeInstances",
            "ecs:CopySnapshot",
            "ecs:CreateSnapshotGroup",
            "ecs:DeleteSnapshotGroup"
          ],
          "Resource": "*" // すべての ECS リソースに対する権限
        },
        {
          "Effect": "Allow",
          "Action": [
            "hbr:CreateVault",
            "hbr:CreateBackupJob",
            "hbr:DescribeVaults",
            "hbr:DescribeBackupJobs2",
            "hbr:DescribeRestoreJobs",
            "hbr:SearchHistoricalSnapshots",
            "hbr:CreateRestoreJob",
            "hbr:AddContainerCluster",
            "hbr:DescribeContainerCluster",
            "hbr:DescribeRestoreJobs2",
            "hbr:CancelBackupJob",
            "hbr:CancelRestoreJob"
          ],
          "Resource": "*" // すべての Cloud Backup リソースに対する権限
        }
      ]
    }

    上記のポリシーは、すべての OSS バケットに対する権限を付与します。 指定された OSS バケットに対する読み取りおよび書き込み権限を付与するには、次のテンプレートに基づいてカスタムポリシーを変更します。 mybackups を OSS バケットの名前に置き換えます。 詳細な OSS 権限の付与方法については、「RAM を使用して OSS 権限を管理する」をご参照ください。

    カスタムポリシーを表示する

    {
       // 省略。上記と同じポリシー構造で、"Resource" 部分のみ変更
      "Resource": [
        "acs:oss:*:*:mybackups", // 指定のバケット名に変更
        "acs:oss:*:*:mybackups/*" // 指定のバケット名に変更
      ]
     // 省略
    }
  3. カスタムポリシーを RAM ユーザーにアタッチします。 詳細については、「RAM ユーザーに権限を付与する」をご参照ください。

  4. RAM ユーザーの AccessKey ペアを作成します。 詳細については、「AccessKey ペアの作成」をご参照ください。

  5. クラスターにシークレットを作成します。

    AccessKey ペアがクラスター内でのみ使用されるようにするには、クラスターに alibaba-addon-secret という名前のシークレットを作成して AccessKey ペアを保存する必要があります。 これにより、情報漏えいのリスクが軽減されます。

    1. 次のコマンドを実行して、csdr という名前のネームスペースを作成します。

      kubectl create ns csdr
    2. 次のコマンドを実行して、alibaba-addon-secret という名前のシークレットを作成します。

      kubectl -n csdr create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'

      <your AccessKey ID><your AccessKey Secret> は、前の手順で取得した AccessKey ペアに置き換えます。

手順 2: migrate-controller をインストールする

詳細については、「migrate-controller をインストールする」をご参照ください。

手順 3 (オプション): 登録済みクラスターと OSS バケットが存在するリージョンの内部ネットワークを指すルートを作成する

登録済みクラスターが CEN、Express Connect、または VPN 経由で VPC に接続されており、登録済みクラスターが OSS バケットのリージョンに存在する場合、バックアップセンターはダウンロード速度を向上させるために、デフォルトで OSS バケットの内部エンドポイントにアクセスします。 したがって、OSS バケットが存在するリージョンの内部ネットワークを指すルートを作成する必要があります。

手順 4 (オプション): Cloud Backup が API Gateway にアクセスすることを承認する

中国 (Ulanqab)、中国 (Heyuan)、および中国 (Guangzhou) リージョンにあるクラスターのデータをバックアップまたは復元する場合にのみ承認が必要です。 詳細については、「手順 3 (オプション): Cloud Backup が API Gateway にアクセスすることを承認する」をご参照ください。