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

Container Service for Kubernetes:migrate-controllerをインストールし、権限を付与する

最終更新日:Dec 12, 2024

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

前提条件

  • 関連するクラウドサービスの有効化

    • クラウドバックアップが有効化されています。 詳細については、「課金方法と課金項目」をご参照ください。

      Cloud Backupを使用して、Object Storage Service (OSS) バケット、File Storage NAS (NAS) ファイルシステム、Cloud Parallel file Storage (CPFS) ファイルシステム、ローカルディスクを使用するボリュームをバックアップするか、ハイブリッドクラウドシナリオでボリュームをバックアップします。 クラウドバックアップを使用する前に、クラウドバックアップを有効化して権限を付与する必要があります。 詳細については、次のセクションをご参照ください。

    • OSSが有効化されています。 詳細については、「課金」をご参照ください。

      バックアップセンター機能は、アプリケーションバックアップをOSSバケットにのみ保存できます。 アプリケーションバックアップをOSSバケットに保存する前に、クラスターにOSS権限を付与する必要があります。 詳細については、次のセクションをご参照ください。

    • ECSスナップショットが有効化されています

      • Elastic Compute Service (ECS) スナップショットサービスの有効化には料金はかかりません。 スナップショットを作成すると、スナップショットのサイズと保持期間に基づいてスナップショットの料金が請求されます。 詳細については、「スナップショット」をご参照ください。

      • Elastic Compute Service (ECS) スナップショットを使用してAlibaba Cloudディスクを使用するボリュームをバックアップする場合は、ECSスナップショットを有効にして権限を付与する必要があります。 詳細については、次のセクションをご参照ください。

  • クラスターの作成

背景情報

Kubernetesで実行されるアプリケーションの数が増えています。 したがって、アプリケーションを定期的にバックアップすることが重要です。 バックアップセンターを使用して、アプリケーションが長期間中断された後に回復できないアプリケーションを復元できます。 従来のバックアップソリューションには、単一サーバーバックアップとディスクバックアップがあります。 従来のバックアップソリューションと比較して、アプリケーションバックアップを使用すると、アプリケーションと関連データ、リソースオブジェクト、構成、名前空間をバックアップできます。

使用上の注意

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

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

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

  • ACK Edgeクラスターでは、移行コントローラーコンポーネントはデフォルトでオンクラウドノードにインストールされ、内部ネットワークを介して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スナップショットとクラウドバックアップ権限の付与

    お使いのクラスターがACK管理クラスターの場合、ECSスナップショットと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": "*"
        },
        {
          "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"
          ],
          "Resource": "*"
        }
      ]
    }

    上記のポリシーは、すべての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"
          ],
          "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コンポーネントのインストール後にSecretを作成する場合は、kube-system名前空間でmigrate-controllerコンポーネントを再起動します。

ステップ2: migrate-controllerのインストール

migrate-controllerをインストールします。 詳細については、「手順1: migrate-controllerのインストール」をご参照ください。

登録済みクラスター

重要

migrate-controller 1.7.7以降のバージョンは、Alibaba Cloudディスクのクロスリージョンリストアをサポートしています。 この機能を使用する場合は、onectlを1.1.0に更新し、onectl ram-user revoke -- addon migrate-controllerコマンドを実行して、RAMユーザーにECSスナップショット権限を付与します。

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を手動でインストールし、権限を付与することもできます。 詳細については、「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"
          ],
          "Resource": "*"
        }
      ]
    }
  4. 登録済みクラスターとOSSバケットが存在するリージョンの内部ネットワークを指すルートを作成します (オプション)

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

コンソールを使用して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": "*"
        },
        {
          "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"
          ],
          "Resource": "*"
        }
      ]
    }

    上記のポリシーは、すべての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"
          ],
          "Resource": "*"
        }
      ]
    }
  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をインストールします。 詳細については、「手順1: migrate-controllerのインストール」をご参照ください。

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

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