このページでは、Backup for GKE サービスを使用して、Google Kubernetes Engine(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=CLUSTER_PROJECT_ID gcloud projects add-iam-policy-binding CLUSTER_PROJECT_ID \ --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com \ --role=roles/gkebackup.serviceAgent \ gcloud beta services identity create \ --service=gkebackup.googleapis.com \ --project=BACKUP_PROJECT_ID gcloud projects add-iam-policy-binding BACKUP_PROJECT_ID \ --member=serviceAccount:service-BACKUP_PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com \ --role=roles/gkebackup.serviceAgent
次のように置き換えます。
CLUSTER_PROJECT_ID
: 作成する Google Cloud プロジェクトの英数字からなる名前。例:cluster-project-id
CLUSTER_PROJECT_NUMBER
: Google Cloud プロジェクトの一意の数値識別子。例:123456789012
BACKUP_PROJECT_ID
: バックアップが保存されるGoogle Cloud プロジェクトの英数字からなる名前。例:backup-project-id
BACKUP_PROJECT_NUMBER
: バックアップが保存されるプロジェクトの一意の数値識別子。例:123456789012
gcloud projects add-iam-policy-binding
コマンドを実行して、バックアップ プロジェクトのサービス アカウントがクラスタ プロジェクトでバックアップを実行できるようにします。gcloud projects add-iam-policy-binding CLUSTER_PROJECT_ID \ --member=serviceAccount:service-BACKUP_PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com \ --role=roles/gkebackup.serviceAgent
次のように置き換えます。
CLUSTER_PROJECT_ID
:Google Cloud プロジェクトの英数字からなる名前。例:cluster-project-id
BACKUP_PROJECT_NUMBER
: バックアップが保存されるプロジェクトの一意の数値識別子。例:123456789012
gcloud projects add-iam-policy-binding
コマンドを実行して、クラスタ プロジェクトのエージェントがバックアップ プロジェクトのgkebackup.googleapis.com
にアクセスできるようにします。gcloud projects add-iam-policy-binding BACKUP_PROJECT_ID \ --member serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com \ --role "roles/gkebackup.crossProjectServiceAgent"
次のように置き換えます。
BACKUP_PROJECT_ID
: バックアップが保存されるGoogle Cloud プロジェクトの英数字からなる名前。例:backup-project-id
CLUSTER_PROJECT_NUMBER
: Google Cloud プロジェクトの一意の数値識別子。例:123456789012
バックアップ チャンネルの作成
サービス アカウントを設定したら、バックアップするクラスタと同じプロジェクトとリージョンにバックアップ チャンネルを作成する必要があります。バックアップ チャンネルを作成すると、プロジェクトとリージョンのクラスタを宛先プロジェクトにバックアップできます。
gcloud
バックアップ チャンネルを作成するには、Google Cloud CLI を使用して gcloud beta container backup-restore backup-channels create
コマンドを実行します。
gcloud beta container backup-restore backup-channels create BACKUP_CHANNEL_NAME \
--project=CLUSTER_PROJECT_ID \
--location=CLUSTER_LOCATION \
--destination-project=projects/BACKUP_PROJECT_NUMBER
次のように置き換えます。
BACKUP_CHANNEL_NAME
: 作成するバックアップ チャンネルの名前。例:my-backup-channel-name
CLUSTER_PROJECT_ID
: クラスタが配置されているGoogle Cloud プロジェクトの英数字からなる名前。例:cluster-project-id
CLUSTER_LOCATION
: クラスタが配置されているリージョン。例:us-central1
BACKUP_PROJECT_NUMBER
: バックアップが保存されるプロジェクトの一意の数値識別子。
コンソール
Google Cloud コンソールでバックアップ チャンネルを作成するには、次の操作を行います。
Google Cloud コンソールで、[Google Kubernetes Engine] ページに移動します。
[リソース管理] メニューで [Backup for GKE] をクリックします。
[バックアップ チャンネル] タブをクリックします。
[バックアップ チャンネル] タブで [バックアップ チャンネルの作成] をクリックします。
[クラスタ プロジェクト] フィールドで、正しいクラスタ プロジェクトが選択されていることを確認します。
[リージョン] メニューを使用して、クラスタが配置されているリージョンを選択します。
[バックアップ プロジェクト] フィールドで、バックアップを許可するプロジェクトを選択します。
[バックアップ チャンネルの名前] フィールドに、バックアップ チャンネルの名前を入力します。
省略可: [バックアップ チャネルの説明] フィールドに、バックアップ チャンネルの簡単な説明を入力します。
[次へ] をクリックします。
クラスタ プロジェクトとバックアップ プロジェクトに対するサービス アカウントの権限を検証します。
[作成] をクリックします。
バックアップ プランの作成
バックアップ チャンネルを作成したら、バックアップ プランを作成する必要があります。バックアップされるクラスタが別のプロジェクトにある場合、バックアップ プランは既存のバックアップ チャンネルに自動的にバインドされます。バックアップ プランの backup_channel
フィールドには、バックアップ プランがバインドされているバックアップ チャンネルが表示されます。
始める前に
バックアップ プランを作成する前に、一連のバックアップを計画するをご覧ください。
バックアップ プランの作成
Google Cloud コンソールを使用してバックアップ プロジェクトにバックアップ プランを作成するには、次の操作を行います。
Google Cloud コンソールで、[Google Kubernetes Engine] ページに移動します。
[リソース管理] メニューで [Backup for GKE] をクリックします。
バックアップ プランを作成するバックアップ プロジェクトを開きます。
[バックアップ プランの作成] をクリックします。
[Configure cross-project backups] チェックボックスをオンにします。
[クラスタ プロジェクト] フィールドで、移行元クラスタを含むプロジェクトを選択します。
[クラスタ] メニューでクラスタのリージョンを選択します。
[バックアップ プラン名] フィールドに、バックアップ プランの名前を入力します。
[バックアップ プロジェクト] フィールドに、バックアップを保存するバックアップ プロジェクトの名前を入力します。
[リージョン] フィールドに、バックアップが保存されるロケーションを入力します。バックアップ チャンネルが見つからない場合は、[バックアップ チャンネルを作成] をクリックし、画面の指示に沿ってバックアップ チャンネルを作成して、[作成] をクリックします。
[バックアップ チャンネルの詳細を表示] をクリックします。
[権限を検証] をクリックします。
バックアップ プランを作成するの説明に沿って、残りの手順を完了します。
[プランの作成] をクリックします。
バックアップ チャンネルの表示
バックアップ チャンネルを表示する手順は、以下のセクションをご覧ください。
プロジェクトとリージョン内のすべてのバックアップ チャンネルを表示
gcloud
プロジェクトとリージョン内のすべてのバックアップ チャンネルを表示するには、Google Cloud CLI を使用して gcloud beta container backup-restore backup-channels list
コマンドを実行します。
gcloud beta container backup-restore backup-channels list \
--project=CLUSTER_PROJECT_ID \
--location=CLUSTER_LOCATION
次のように置き換えます。
CLUSTER_PROJECT_ID
: クラスタが配置されているGoogle Cloud プロジェクトの英数字からなる名前。例:cluster-project-id
CLUSTER_LOCATION
: クラスタが配置されているリージョン。例:us-central1
コンソール
Google Cloud コンソールでプロジェクトとリージョン内のすべてのバックアップ チャンネルを表示する手順は次のとおりです。
クラスタ プロジェクトの Google Cloud コンソールで、[Google Kubernetes Engine] ページに移動します。
[リソース管理] メニューで [Backup for GKE] をクリックします。
[バックアップ チャンネル] タブをクリックします。
プロジェクトとリージョンのメニューを使用して、バックアップ チャンネルのリストをフィルタします。
フィルタされたリストには、選択したプロジェクトとリージョンのすべてのバックアップ チャンネルが表示されます。
バックアップ チャンネルの詳細の表示
gcloud
バックアップ チャンネルの詳細を表示するには、Google Cloud CLI を使用して gcloud beta container backup-restore backup-channels describe
コマンドを実行します。
gcloud beta container backup-restore backup-channels describe BACKUP_CHANNEL_NAME \
--project=CLUSTER_PROJECT_ID \
--location=CLUSTER_LOCATION
次のように置き換えます。
BACKUP_CHANNEL_NAME
: 表示するバックアップ チャンネルの名前。例:my-backup-channel-name
CLUSTER_PROJECT_ID
: クラスタが配置されているGoogle Cloud プロジェクトの英数字からなる名前。例:cluster-project-id
CLUSTER_LOCATION
: クラスタが配置されているリージョン。例:us-central1
コンソール
Google Cloud コンソールでバックアップ チャンネルの詳細を表示する手順は次のとおりです。
クラスタ プロジェクトの Google Cloud コンソールで、[Google Kubernetes Engine] ページに移動します。
[リソース管理] メニューで [Backup for GKE] をクリックします。
[バックアップ チャンネル] タブをクリックします。
プロジェクトとリージョンのメニューを使用して、バックアップ チャンネルのリストをフィルタします。
表示するバックアップ チャンネルの名前をクリックします。そのバックアップ チャンネルの詳細を示すページが開きます。
バックアップ チャンネルにバインドされているバックアップ プランの表示
バックアップ チャンネルにバインドされているバックアップ プランを表示するには、Google Cloud CLI を使用して gcloud beta container backup-restore backup-plan-bindings list
コマンドを実行します。
gcloud beta container backup-restore backup-plan-bindings list \
--backup-channel=BACKUP_CHANNEL_NAME \
--project=CLUSTER_PROJECT_ID \
--location=CLUSTER_LOCATION
次のように置き換えます。
BACKUP_CHANNEL_NAME
: 表示するバックアップ チャンネルの名前。例:my-backup-channel-name
CLUSTER_PROJECT_ID
: クラスタが配置されている Google Cloud プロジェクトの英数字からなる名前。例:cluster-project-id
。CLUSTER_LOCATION
: クラスタが配置されているリージョン。例:us-central1
バックアップ チャンネルの管理
以降のセクションでは、バックアップ チャンネルの作成後に管理する方法について説明します。
バックアップ チャンネルの更新
バックアップ チャンネルを更新する手順は次のとおりです。既存のバックアップ チャンネルの説明のみを変更できます。他のフィールドはどこも変更できません。
gcloud
バックアップ チャンネルの説明を更新するには、Google Cloud CLI を使用して gcloud beta container backup-restore backup-channels update
コマンドを実行します。
gcloud beta container backup-restore backup-channels update BACKUP_CHANNEL_NAME \
--project=CLUSTER_PROJECT_ID \
--location=CLUSTER_LOCATION \
--description=DESCRIPTION
次のように置き換えます。
BACKUP_CHANNEL_NAME
: 更新するバックアップ チャンネルの名前。例:my-backup-channel-name
CLUSTER_PROJECT_ID
: クラスタが配置されているGoogle Cloud プロジェクトの英数字からなる名前。例:cluster-project-id
CLUSTER_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 BACKUP_CHANNEL_NAME \
--project=CLUSTER_PROJECT_ID \
--location=CLUSTER_LOCATION
次のように置き換えます。
BACKUP_CHANNEL_NAME
: 削除するバックアップ チャンネルの名前。例:my-backup-channel-name
CLUSTER_PROJECT_ID
: クラスタが配置されているGoogle Cloud プロジェクトの英数字からなる名前。例:cluster-project-id
CLUSTER_LOCATION
: クラスタが配置されているリージョン。例:us-central1
コンソール
Google Cloud コンソールでバックアップ チャンネルを削除する手順は次のとおりです。
クラスタ プロジェクトの Google Cloud コンソールで、[Google Kubernetes Engine] ページに移動します。
[リソース管理] メニューで [Backup for GKE] をクリックします。
[バックアップ チャンネル] タブをクリックします。
[バックアップ チャンネル] ページで、削除するバックアップ チャンネルをクリックします。
[チャンネルを削除] をクリックします。
バックアップ チャンネルの削除を確認するダイアログが表示されます。
[バックアップ チャンネルの名前] フィールドにバックアップ チャンネルの名前を入力して、削除を確定します。
[確認] をクリックします。
次のステップ
プロジェクト間の復元を実行する方法を学習する。
一連の復元を計画する方法について学習する。