このページでは、Backup for GKE サービスを使用して Google Kubernetes Engine(GKE)でプロジェクト間の復元を実行する方法について説明します。
概要
Backup for GKE のプロジェクト間の復元を使用すると、あるプロジェクトのバックアップを宛先プロジェクトのクラスタに復元できます。バックアップを専用のプロジェクトに保存し、これらのバックアップを他のプロジェクトのクラスタに復元できます。
制限事項
既存の復元プランを移行して、プロジェクト間の復元を実行することはできません。
料金
料金の詳細については、プロジェクト間のバックアップと復元の料金をご覧ください。
始める前に
-
始める前に、次の作業が完了していることを確認してください。
- Google Kubernetes Engine API を有効にする。 Google Kubernetes Engine API の有効化
- このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、
gcloud components update
を実行して最新のバージョンを取得する。
復元先のクラスタを含むプロジェクトで Backup for GKE API を有効にします。詳細については、Backup for GKE API を有効にするをご覧ください。
復元先のクラスタで Backup for GKE アドオンを有効にします。詳細については、クラスタで Backup for GKE を有効にするをご覧ください。
必要なロール
プロジェクト間の復元の作成と管理に必要な権限を取得するには、プロジェクトに対する Backup for GKE 管理者(roles/gkebackup.admin
)IAM ロールのサブセットである Backup for GKE バックアップ管理者(roles/gkebackup.backupAdmin
)を付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
サービス アカウントを設定する
必要に応じて、プロジェクトでオペレーションを実行するプロジェクトごとのサービス アカウントを作成します。
Google Cloud CLI で
gcloud beta services identity create
コマンドを実行してサービス アカウントを作成します。gcloud beta services identity create --service=gkebackup.googleapis.com --project=RESTORE_PROJECT_ID gcloud projects add-iam-policy-binding RESTORE_PROJECT_ID --member=serviceAccount:service-RESTORE_PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com --role=roles/gkebackup.serviceAgent
次のように置き換えます。
RESTORE_PROJECT_ID
: 復元する Google Cloud プロジェクトの英数字からなる名前。例:restore-project-id
RESTORE_PROJECT_NUMBER
: Google Cloud プロジェクトの一意の数値識別子。例:123456789012
gcloud projects add-iam-policy-binding
コマンドを実行して、復元プロジェクトのエージェントがバックアップ プロジェクトのgkebackup.googleapis.com
にアクセスできるようにします。gcloud projects add-iam-policy-binding BACKUP_PROJECT_ID --member serviceAccount:service-RESTORE_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com --role "roles/gkebackup.crossProjectServiceAgent"
次のように置き換えます。
BACKUP_PROJECT_ID
: バックアップを含む Google Cloud プロジェクトの英数字からなる名前。例:backup-project-id
RESTORE_PROJECT_NUMBER
: バックアップを使用して復元する Google Cloud プロジェクトの一意の数値識別子。例:123456789012
復元チャンネルの作成
復元するバックアップと同じプロジェクトとリージョンに復元チャンネルを作成し、そのチャンネルで宛先プロジェクトを構成する必要があります。これにより、元のプロジェクトとリージョンのバックアップを宛先プロジェクトに復元できます。
gcloud
復元チャンネルを作成するには、Google Cloud CLI を使用して gcloud beta container backup-restore restore-channels create
コマンドを実行します。
gcloud beta container backup-restore restore-channels create RESTORE_CHANNEL_NAME \
--project=BACKUP_PROJECT_ID \
--location=BACKUP_LOCATION \
--destination-project=projects/RESTORE_PROJECT_NUMBER
次のように置き換えます。
RESTORE_CHANNEL_NAME
: 作成する復元チャンネルの名前。BACKUP_PROJECT_ID
: バックアップが保存されるGoogle Cloud プロジェクトの英数字からなる名前。例:backup-project-id
BACKUP_LOCATION
: バックアップが保存されるリージョン。例:us-central1
RESTORE_PROJECT_NUMBER
: バックアップを復元するプロジェクトの一意の数値識別子。例:123456789012
コンソール
Google Cloud コンソールで復元チャンネルを作成するには、次の操作を行います。
Google Cloud コンソールで [Google Kubernetes Engine] ページに移動します。
[リソース管理] メニューで [Backup for GKE] をクリックします。
[復元チャンネル] タブをクリックします。
[復元チャンネル] タブで、[復元チャンネルの作成] をクリックします。
復元プランの作成
復元チャンネルを作成後、復元プランを作成する必要があります。使用する復元プランが別のプロジェクトにある場合、既存の復元チャンネルに自動的にバインドされます。復元プランの restore_channel
フィールドには、復元プランがバインドされている復元チャンネルが表示されます。
始める前に
復元プランを作成する前に、一連の復元を計画するをご覧ください。
復元プランの作成
Google Cloud コンソールを使用して、復元プロジェクトに復元プランを作成します。
Google Cloud コンソールで、[Google Kubernetes Engine] ページに移動します。
[リソース管理] メニューで [Backup for GKE] をクリックします。
復元プランを作成するプロジェクトが表示されていることを確認します。
[復元プランの作成] をクリックします。
[プロジェクト間の復元を構成する] ボックスをクリックします。
[バックアップ プロジェクト] フィールドで、バックアップ プランとバックアップを含むプロジェクトを選択します。
[バックアップ プラン] フィールドで、対応するバックアップ プランを選択します。
[プロジェクトを復元] フィールドで、復元プランと復元を含むプロジェクトを選択します。復元チャンネルが見つからない場合は、[復元チャンネルを作成] をクリックし、画面の指示に沿って復元チャンネルを作成して、[作成] をクリックします。
[復元チャンネルの詳細を表示] をクリックします。
[権限を検証] をクリックします。
Backup for GKE のドキュメントに記載されている復元プランの作成方法の説明に沿って、残りの手順を完了します。
復元チャンネルの表示
以下のセクションでは、復元チャンネルを表示する方法について説明します。
プロジェクトとリージョン内のすべての復元チャンネルを表示
gcloud
プロジェクトとリージョン内のすべての復元チャンネルを表示するには、Google Cloud CLI を使用して gcloud beta container backup-restore restore-channels list
コマンドを実行します。
gcloud beta container backup-restore restore-channels list \
--project=BACKUP_PROJECT_ID \
--location=BACKUP_LOCATION
次のように置き換えます。
BACKUP_PROJECT_ID
: バックアップが保存されるGoogle Cloud プロジェクトの英数字からなる名前。例:backup-project-id
BACKUP_LOCATION
: バックアップが保存されるリージョン。例:us-central1
コンソール
Google Cloud コンソールですべての復元チャンネルを表示するには、次の操作を行います。
バックアップ プロジェクトの Google Cloud コンソールで [Google Kubernetes Engine] ページに移動します。
[リソース管理] メニューで [Backup for GKE] をクリックします。
[復元チャンネル] タブをクリックします。
表示するプロジェクトを選択するには、[プロジェクト] メニューを使用します。
復元チャンネルのリージョンを選択するには、[リージョン] メニューを使用します。
コンソールに、選択したプロジェクトとリージョンのすべての復元チャンネルを含むテーブルが表示されます。
復元チャンネルの詳細の表示
gcloud
復元チャンネルの詳細を表示するには、Google Cloud CLI を使用して gcloud beta container backup-restore restore-channels describe
コマンドを実行します。
gcloud beta container backup-restore restore-channels describe RESTORE_CHANNEL_NAME \
--project=BACKUP_PROJECT_ID \
--location=BACKUP_LOCATION
次のように置き換えます。
RESTORE_CHANNEL_NAME
: 表示する復元チャンネルの名前。BACKUP_PROJECT_ID
: バックアップが保存されるGoogle Cloud プロジェクトの英数字からなる名前。例:backup-project-id
BACKUP_LOCATION
: バックアップが保存されるリージョン。例:us-central1
コンソール
Google Cloud コンソールで復元チャンネルの詳細を表示する手順は次のとおりです。
バックアップ プロジェクトの Google Cloud コンソールで、[Google Kubernetes Engine] ページに移動します。
[リソース管理] メニューで [Backup for GKE] をクリックします。
[復元チャンネル] タブをクリックします。
表示するプロジェクトを選択するには、[プロジェクト] メニューを使用します。
復元チャンネルのリージョンを選択するには、[リージョン] メニューを使用します。
表示する復元チャンネルの名前をクリックします。
Google Cloud コンソールに、選択した復元チャンネルの詳細が表示されます。
復元チャンネルにバインドされている復元プランの表示
復元チャンネルにバインドされている復元プランを表示するには、Google Cloud CLI を使用して gcloud beta container backup-restore restore-plan-bindings list
コマンドを実行します。
gcloud beta container backup-restore restore-plan-bindings list \
--restore-channel=RESTORE_CHANNEL_NAME \
--project=BACKUP_PROJECT_ID \
--location=BACKUP_LOCATION
次のように置き換えます。
RESTORE_CHANNEL_NAME
: 表示する復元チャンネルの名前。BACKUP_PROJECT_ID
: バックアップが保存されるGoogle Cloud プロジェクトの英数字からなる名前。例:backup-project-id
BACKUP_LOCATION
: バックアップが保存されるリージョン。例:us-central1
復元チャンネルの管理
以下のセクションでは、復元チャンネルの管理方法について説明します。
復元チャンネルの更新
復元チャンネルを更新する手順は次のとおりです。既存の復元チャンネルの説明のみを更新できます。他のフィールドは変更できません。
gcloud
復元チャンネルの説明を更新するには、Google Cloud CLI を使用して gcloud beta container backup-restore restore-channels update
コマンドを実行します。
gcloud beta container backup-restore restore-channels update RESTORE_CHANNEL_NAME \
--project=BACKUP_PROJECT_ID \
--location=BACKUP_LOCATION \
--description=DESCRIPTION
次のように置き換えます。
RESTORE_CHANNEL_NAME
: 更新する復元チャンネルの名前。BACKUP_PROJECT_ID
: バックアップが保存されるGoogle Cloud プロジェクトの英数字からなる名前。例:backup-project-id
BACKUP_LOCATION
: バックアップが保存されるリージョン。例:us-central1
DESCRIPTION
: 復元チャンネルの更新した説明。
コンソール
Google Cloud コンソールで復元チャンネルを更新する手順は次のとおりです。
バックアップ プロジェクトの Google Cloud コンソールで、[Google Kubernetes Engine] ページに移動します。
[リソース管理] メニューで [Backup for GKE] をクリックします。
[復元チャンネル] タブをクリックします。
[復元チャンネル] ページで、更新する復元チャンネルをクリックします。既存の復元チャンネルの説明のみを更新できます。他のフィールドは変更できません。
[復元チャンネルの詳細] ページが表示されます。
[権限を検証] をクリックします。
[復元チャンネルの詳細] セクションで、説明を編集アイコン
をクリックします。[説明を編集] ダイアログが表示されます。
[説明] フィールドに、復元チャンネルの更新した説明を入力し、[変更を保存] をクリックします。
復元チャンネルの削除
復元チャンネルを削除する手順は次のとおりです。復元チャンネルを削除できるのは、復元プランがバインドされていない場合のみです。復元プランがバインドされている場合は、復元チャンネルを削除する前に復元プランを削除する必要があります。
gcloud
復元チャンネルを削除するには、Google Cloud CLI を使用して gcloud beta container backup-restore backup-channels delete
コマンドを実行します。
gcloud beta container backup-restore backup-channels delete RESTORE_CHANNEL_NAME \
--project=BACKUP_PROJECT_ID \
--location=BACKUP_LOCATION
次のように置き換えます。
RESTORE_CHANNEL_NAME
: 削除する復元チャンネルの名前。BACKUP_PROJECT_ID
: バックアップが保存されるGoogle Cloud プロジェクトの英数字からなる名前。例:backup-project-id
BACKUP_LOCATION
: バックアップが保存されるリージョン。例:us-central1
コンソール
Google Cloud コンソールで復元チャンネルを削除する手順は次のとおりです。
バックアップ プロジェクトの Google Cloud コンソールで、[Google Kubernetes Engine] ページに移動します。
[リソース管理] メニューで [Backup for GKE] をクリックします。
[復元チャンネル] タブをクリックします。
[復元チャンネル] ページで、削除する復元チャンネルをクリックします。
[チャンネルの削除] をクリックします。
復元チャンネルの削除を確認するダイアログが表示されます。
[復元チャンネルの名前] フィールドに、復元チャンネルの名前を入力して削除を確定します。
[確定] をクリックします。
次のステップ
- 一連の復元を計画する方法について学習する。