このページでは、Google Kubernetes Engine(GKE)でバックアップを復元するために使用される Backup for GKE 復元プランの作成方法について説明します。
復元プランは、対応するバックアップ行に事前に構成された復元シナリオです。復元プランでは、これらの構成を使用する権限を管理者に割り当てることができます。これらのユーザーは、インシデントの発生時にバックアップを迅速かつ個別に復元できます。たとえば、デプロイされたアプリケーションのソフトウェア アップデートによって永続データが破損し、アプリケーションの名前空間が無効な状態になる場合があります。この場合、復元が必要です。
復元中に、必要に応じて置換ルールを適用できます。これらのルールが一連のリソースに一致すると、これらのリソースの属性の現在の値が新しい値に置き換えられます。
始める前に
一連のバックアップを計画します。
復元プランを作成
バックアップの復元プランを作成するには、Google Cloud CLI または Google Cloud コンソールを使用します。
gcloud
復元プランを作成するには、次のコマンドを実行します。
gcloud alpha container backup-restore restore-plans create RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION \
--backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN \
--cluster=projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER \
--cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY \
--namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE \
--all-namespaces
次のように置き換えます。
RESTORE_PLAN
: 作成する復元プランの名前。PROJECT_ID
: Google Cloud プロジェクトの ID。LOCATION
: リソースのコンピューティング リージョン(us-central1
など)。ロケーションは、ターゲット クラスタが配置されているのと同じリージョンにする必要があります。クラスタ ロケーションの場合のみ、リージョン クラスタに対してlocations/
LOCATION
を指定するか、クラスタに対してzones/
ZONE
を指定できます。BACKUP_PLAN
: この復元プランで復元できるバックアップのソース。CLUSTER
: バックアップを復元するターゲット クラスタ。CLUSTER_RESOURCE_CONFLICT_POLICY
: クラスタ スコープ リソースの復元時間の競合を処理する方法を定義します。たとえば、ターゲット クラスタに、バックアップからの復元がスケジューリングされているリソースと同じクラスタ スコープのリソースが存在することもあります。次のいずれかのオプションに設定します。USE_EXISTING_VERSION
: 競合が発生した場合、リソースの既存のバージョンはそのままにします。USE_BACKUP_VERSION
: 競合が発生した場合、既存のバージョンをバックアップにあるバージョンで上書きします。
NAMESPACED_RESOURCE_RESTORE_MODE
: 名前空間付きのリソースの復元時に発生する競合の処理方法を定義します。名前空間付きのリソースは、常に名前空間またはProtectedApplication
でグループで復元されます。次のいずれかのオプションに設定します。DELETE_AND_RESTORE
: ターゲット クラスタに、そのクラスタに復元されるものと同じリソース グループが含まれている場合、新しいリソースが復元される前に既存のリソース グループが削除されます。FAIL_ON_CONFLICT
: ターゲット クラスタに、バックアップからの復元対象のリソース グループがすでに存在する場合、復元は失敗します。
--all-namespaces
: バックアップ内のすべての名前空間付きリソースを復元します。または、アプリケーションのリストを含む--selected-applications
か、名前空間のリストを含む--selected-namespaces
を指定します。
オプションの全リストを取得するには、次のコマンドを実行します。
gcloud alpha container backup-restore restore-plans create --help
Console
Cloud コンソールで次のタスクを行います。
Cloud コンソールで Google Kubernetes Engine ページに移動します。
ナビゲーション メニューで [Backup for GKE] をクリックします。
[復元プランを作成] をクリックします。
[プランに名前を付けてクラスタを選択する] セクションで、次を行い、[次へ] をクリックします。
- 復元プラン名と説明(省略可)を入力します。
- 復元するバックアップに対応する既存クラスタのバックアップ プランを選択します。
- バックアップを復元するターゲット クラスタを選択します。
[名前空間付きリソースの選択] セクションで、次の操作を行い、[次へ] をクリックします。
- 復元する名前空間を選択します。
- バックアップ内のすべての名前空間付きリソースを復元するには、[すべての名前空間付きリソース] をクリックします。
- [選択した名前空間付きリソース] をクリックして、バックアップの復元に使用する名前空間を指定します。
- 名前空間とアプリケーション名を指定してリソースを追加するには、[選択した保護対象アプリケーション] をクリックします。
- 競合の処理方法を選択します。
- バックアップからの復元対象の名前空間がターゲット クラスタにすでに存在する場合、[競合で失敗(破損なし)] をクリックして復元に失敗します。
- バックアップの復元対象となる名前空間がターゲット クラスタにすでに存在する場合、[ロールバック(破壊的)] をクリックして、新しい名前空間を復元する前に既存の名前空間を削除します。
- ボリューム データの復元方法を選択します。
- [新しいボリュームをプロビジョニングし、バックアップからボリューム データを復元する] をクリックして、バックアップから新しい永続ディスクにボリューム データを復元します。
- [ボリューム データを復元しない] をクリックして、新しい永続ボリュームをプロビジョニングします。ターゲット クラスタに、
PersistentVolumeClaim
要件を満たすバインドされていない永続ボリュームが含まれている場合、クラスタはボリュームにバインドされます。 - ボリュームのバックアップ データを復元しない場合は、[データを含む既存のボリュームを再利用する] をクリックします。
PersistentVolumeClaims
は、既存の永続ディスクを参照するボリュームにバインドされます。
- 復元する名前空間を選択します。
(省略可)[クラスタ スコープのリソースを選択する] セクションで、次の操作を行い、[次へ] をクリックします。
- [GroupKind を追加] をクリックして、クラスタ スコープのリソースを追加します。
- [ターゲット クラスタ内のリソースを上書きする] チェックボックスをクリックして、ターゲット クラスタにすでに存在するリソースを削除し、バックアップからコピーを復元します。
(省略可)[置換ルールを追加する] セクションで、次の手順を行い、[次へ] をクリックします。
- [ルールを追加] をクリックします。
- 名前空間のリストを入力して、それらの名前空間内のリソースと一致させます。または、[名前空間を指定されたリソースを除外する] チェックボックスをオンにして、ルールの定義から名前空間付きのリソースを除外します。
- [GroupKind を追加] をクリックし、オブジェクトのタイプを入力します。さらに、このタイプのリソースに一致する API グループを入力することもできます。
- 置換が適用される照合対象リソース内のフィールドを識別する JSON パスを入力します。
- 一致した属性の現在の値を置き換える新しい値を入力するか、[特定の値を置き換える(正規表現を使用)] チェックボックスをオンにします。次に、パターンを入力して、これらのリソースの現在の値と比較します。
- [完了] をクリックします。
[プランの作成] をクリックします。
復元プランを表示する
復元プランとその詳細を表示するには、gcloud CLI または Cloud コンソール使用します。
gcloud
プロジェクトとロケーション内のすべての復元プランを一覧表示するには、次のコマンドを実行します。
gcloud alpha container backup-restore restore-plans list \
--project=PROJECT_ID \
--location=LOCATION
list
コマンドの場合のみ、PROJECT_ID
以外のパラメータの値として -
を指定できます。-
値はワイルドカードとして機能します。コマンドライン オプションを指定しないか、プロパティを設定しない場合、パラメータのデフォルト値は -
です。
オプションの全リストを取得するには、次のコマンドを実行します。
gcloud alpha container backup-restore restore-plans list --help
復元プランの詳細を表示するには、次のコマンドを実行します。
gcloud alpha container backup-restore restore-plans describe RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION
Console
Cloud コンソールで次のタスクを行います。
Cloud コンソールで Google Kubernetes Engine ページに移動します。
ナビゲーション メニューで [Backup for GKE] をクリックします。
[復元プラン] タブをクリックします。
バックアップ プランを開き、復元プランの名前をクリックします。
[詳細] タブをクリックして、詳細を表示します。
復元プランを更新する
復元プランとその詳細を更新するには、gcloud CLI を使用します。
新しい説明を追加するなど、復元プランを更新するには、次のコマンドを実行します。
gcloud alpha container backup-restore restore-plans update RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION \
--description=DESCRIPTION
オプションの全リストを取得するには、次のコマンドを実行します。
gcloud alpha container backup-restore restore-plans update --help
復元プランを削除する
復元プランを削除するには、gcloud CLI または Cloud コンソールを使用します。復元プランを削除すると、子の復元プランも削除されます。
gcloud
バックアップ プランを削除するには、次のコマンドを実行します。
gcloud alpha container backup-restore restores delete RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION
オプションの完全なリストについては、gcloud alpha container backup-restore restores delete
のドキュメントをご覧ください。
Console
Cloud コンソールで次のタスクを行います。
Cloud コンソールで Google Kubernetes Engine ページに移動します。
ナビゲーション メニューで [Backup for GKE] をクリックします。
[復元プラン] タブをクリックします。
クラスタを開き、プラン名をクリックします。
[deleteプランを削除] をクリックします。
復元プラン名を入力し、確認ダイアログで [復元プランを削除] をクリックします。
次のステップ
- バックアップの復元について学習する。