バックアップセンターを使用して、ディザスタリカバリのために Container Service for Kubernetes (ACK) クラスタ内のアプリケーションをバックアップおよび復元できます。
制限事項
バックアップセンターがアプリケーションをバックアップする場合、削除中のリソースはバックアップされません。
Kubernetes 1.16 以降を実行する ACK クラスタのみがバックアップセンターをサポートしています。 ACK クラスタの Kubernetes バージョンを更新する方法の詳細については、「ACK クラスタを手動でアップグレードする」をご参照ください。
デフォルトでは、Elastic Compute Service (ECS) スナップショットが作成されてディスクがバックアップされます。 Kubernetes 1.18 以降を実行し、CSI をサポートする ACK クラスタのみが ECS スナップショットをサポートします。 クラスタが要件を満たしていない場合は、Cloud Backup を使用してください。
前提条件
ディスクスナップショットを作成してボリュームをバックアップするには、CSI 1.1.0 以降をインストールする必要があります。 詳細については、「CSI プラグインを管理する」をご参照ください。
CNFS によって管理されている NAS ファイルシステム (File Storage NAS (NAS)) ボリュームにバックアップを復元するには ([StorageClass] を [alibabacloud-cnfs-nas] に設定することにより)、最初に StorageClass を作成する必要があります。 詳細については、「CNFS を使用して NAS ファイルシステムを管理する (推奨)」をご参照ください。
課金
バックアップセンター機能は無料です。 ただし、この機能を使用すると、以下の関連サービスに対して課金される場合があります。
OSS 課金: OSS バケットは、関連する YAML ファイルなど、クラスタのバックアップファイルを保存するために使用されます。
スナップショット課金: スナップショットは、Alibaba Cloud ディスクを使用してボリュームをバックアップするために使用されます。
説明2023 年 10 月 12 日 11:00 (UTC + 08:00) から、インスタントアクセス機能のストレージ料金と機能使用料金は請求されなくなりました。 詳細については、「インスタントアクセス機能を使用する」をご参照ください。
PL0 Enhanced SSD (ESSD)、PL1 ESSD、PL2 ESSD、PL3 ESSD、または ESSD AutoPL ディスクを使用する場合、バックアップ中に作成されたスナップショットでは、インスタントアクセス機能がデフォルトで有効になっています。
Cloud Backup の料金詳細: Cloud Backup は、ディスクボリューム以外のボリュームタイプからデータをバックアップするために使用されます。
ステップ 1: バックアップボールトを作成する
ACK クラスタ内のアプリケーションをバックアップすると、バックアップファイルは Object Storage Service (OSS) バケットに保存されます。 バックアップタスクの作成時に使用可能なバックアップボールトがない場合は、ステップ 1 の操作を実行する必要があります。
ACK クラスタのリージョンに 1 つのバックアップボールトのみを作成する必要があります。 ACK クラスタはバックアップボールトを共有できます。
既存のバックアップボールトを更新することはできません。 既存のバックアップボールトは削除のみ可能です。 削除されたバックアップボールトと同じ名前のバックアップボールトを作成した場合、作成したバックアップボールトは、アプリケーションバックアップ機能を使用したクラスタでは使用できません。
ACK コンソール にログインします。 左側のナビゲーションウィンドウで、 を選択します。
[バックアップセンター] ページで、[バックアップボールトの作成] をクリックします。
[バックアップボールトの作成] パネルで、パラメータを設定し、[OK] をクリックします。
パラメータ
説明
[ボールト名]
バックアップボールトの名前。 名前に小文字と数字を含めることができます。
[OSS バケットリージョン]
使用する OSS バケットがデプロイされているリージョン。
[OSS バケット名]
OSS バケットの名前。
ACK マネージドクラスタを使用する場合は、この手順を実行する前に OSS バケットを作成する必要があります。 OSS バケットには、[cnfs-oss****] 形式で名前を付ける必要があります。
[OSS バケットサブディレクトリ]
OSS バケットのサブディレクトリ。 このパラメータはオプションです。
[表示範囲]
他のユーザーに対するバックアップボールトの可視性。 有効な値:
[バックアップボールトは、Alibaba Cloud アカウントと作成者のみが表示できます。]
[バックアップボールトは、Alibaba Cloud アカウントと RAM ユーザーが表示できます。]
ステップ 2: バックアッププランを作成するか、即座にバックアップする
[バックアッププランの作成]: バックアッププランが削除されるまで、システムはバックアップサイクルに基づいて定期的にバックアップタスクを作成します。 バックアップサイクルを指定して、システムが一定の間隔で、または毎日、毎週、毎月のスケジュールされた時刻にバックアップタスクを作成できるようにすることができます。
[即時バックアップ]: システムは、現在の時刻にアプリケーションをバックアップするためのバックアップタスクを作成します。
バックアッププランまたはインスタントバックアッププランを作成すると、システムはクラスタ内にバックアップタスクを作成します。 タスクのステータスは、[バックアップレコード] タブに表示されます。
バックアッププランを作成する
[クラスタ] ページで、管理するクラスタの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
システムは、バックアップ サービス コンポーネントがインストールされているかどうかを自動的に確認します。インストールされていない場合は、ページの指示に従ってバックアップ サービス コンポーネントをインストールしてください。登録済みクラスターまたは ACK 専用クラスターを使用している場合は、権限も構成する必要があります。詳細については、「migrate-controller をインストールし、権限を付与する」をご参照ください。
[アプリケーションバックアップ] ページで、[バックアッププランの作成] をクリックします。 [バックアッププランの作成] パネルで、パラメータを設定し、[OK] をクリックします。
パラメータ
説明
[名前]
バックアッププランの名前。 このパラメータは必須です。
[バックアップボールト]
使用するバックアップボールトを選択します。 このパラメータは必須です。
[バックアップタイプ]
[アプリケーションバックアップ]: システムは、クラスタリソースとアプリケーションで使用されるボリュームを含む、クラスタ内で実行されているアプリケーションをバックアップします。
[データ保護]: システムはボリュームデータをバックアップします。 リソースには、永続ボリューム要求 (PVC) と永続ボリューム (PV) のみ含まれます。
詳細については、「アプリケーションバックアップとデータ保護のシナリオとは?」をご参照ください。
[名前空間の選択]
[含める]: システムは、[バックアップ名前空間] で指定された名前空間内のアプリケーションのみをバックアップします。 選択した名前空間が削除された場合、システムはバックアップ中にその名前空間をスキップします。
[除外]: システムは、[バックアップ名前空間] で指定された名前空間を除くすべての名前空間内のアプリケーションをバックアップします。 新しい名前空間が作成された場合、その名前空間内のアプリケーションもバックアップされます。
説明[名前空間の選択] は、バックアッププランの作成時にのみ設定できます。 インスタントバックアッププランのデフォルト値は、[含める] です。
[バックアップ名前空間]
1 つ以上の名前空間を選択できます。 このパラメータは必須です。
説明kube-system、kube-publish、kube-node-lease、および csdr 名前空間はクラスタに依存しています。 バックアップおよび復元機能は、これらの名前空間には適していません。 したがって、これらの名前空間内のアプリケーションをバックアップすることはできません。
[バックアップボリューム]
[ストレージ]
このパラメータは、[バックアップタイプ] が [データ保護] に設定され、[バックアップボリューム] が [指定されたタイプのボリューム] に設定されている場合にのみ有効です。
バックアップするボリュームのタイプを指定します。
[永続ボリューム要求]
このパラメータは、[バックアップタイプ] が [データ保護] に設定され、[バックアップボリューム] が [指定されたボリューム] に設定されている場合にのみ有効です。
バックアップするボリュームを指定します。
[バックアップサイクル]
crontab 式を入力します。 バックアッププランを作成する場合にのみ、バックアップサイクルを指定する必要があります。 バックアップサイクルの指定方法の詳細については、「バックアッププランを作成するときにバックアップサイクルを指定するにはどうすればよいですか?」をご参照ください。
Linux crontab 式を使用するか、バックアップ間隔を指定できます。
次のステップ
[アプリケーションバックアップ] ページの [バックアッププラン] タブで、バックアッププランの [アクション] 列にある [バックアップレコードの表示] をクリックして、バックアップレコードを表示できます。 [ステータス] 列に [完了] と表示されている場合は、バックアップが作成されています。
[バックアッププラン] タブの [アプリケーションバックアップ] ページで、バックアッププランの [アクション] 列にある [編集] をクリックして、バックアップ名前空間とバックアップサイクルを変更できます。
即時バックアップ
[クラスタ] ページで、管理するクラスタを見つけて、その名前をクリックします。 左側のウィンドウで、 を選択します。
システムは、バックアップ サービス コンポーネントがインストールされているかどうかを自動的に確認します。インストールされていない場合は、ページの指示に従ってバックアップ サービス コンポーネントをインストールします。 登録済みクラスターまたは ACK 専用クラスターを使用する場合は、権限も構成する必要があります。 詳細については、「migrate-controller をインストールし、権限を付与する」をご参照ください。
[アプリケーションバックアップ] ページで、[インスタントバックアップ] をクリックします。 [インスタントバックアップ] パネルで、パラメータを設定し、[OK] をクリックします。
パラメータ
説明
[名前]
インスタントバックアップタスクの名前。 このパラメータは必須です。
[バックアップボールト]
使用するバックアップボールトを選択します。 このパラメータは必須です。
[バックアップタイプ]
[アプリケーションバックアップ]: システムは、クラスタリソースとアプリケーションが使用するボリュームを含む、クラスタで実行されているアプリケーションをバックアップします。
[データ保護]: システムはボリュームデータをバックアップします。 リソースには、永続ボリューム要求 (PVC) と永続ボリューム (PV) のみ含まれます。
詳細については、「アプリケーションバックアップとデータ保護のシナリオとは?」をご参照ください。
[バックアップ名前空間]
1 つ以上の名前空間を選択できます。 このパラメータは必須です。
説明kube-system、kube-publish、kube-node-lease、および csdr 名前空間は、クラスタに依存しています。 バックアップおよび復元機能は、これらの名前空間には適していません。 したがって、これらの名前空間内のアプリケーションをバックアップすることはできません。
[バックアップボリューム]
[ストレージ]
このパラメータは、[バックアップタイプ] が [データ保護] に設定され、[バックアップボリューム] が [指定されたタイプのボリューム] に設定されている場合にのみ有効です。
バックアップするボリュームのタイプを指定します。
[永続ボリューム要求]
このパラメータは、[バックアップタイプ] が [データ保護] に設定され、[バックアップボリューム] が [指定されたボリューム] に設定されている場合にのみ有効です。
バックアップするボリュームを指定します。
次のステップ
[アプリケーションバックアップ] ページの [バックアッププラン] タブで、バックアップレコードの [ステータス] 列に [完了] と表示されている場合は、バックアップが作成されています。
バックアップレコードの [アクション] 列にある [複製] をクリックして、バックアップレコードからリアルタイムバックアップタスクを作成できます。
ステップ 3: アプリケーションとボリュームを復元する
システムは、データを復元するときに、クラスタ内の既存のリソースを上書きしません。 クラスタに存在しないリソースのみを復元します。 復元するリソースがクラスタにすでに含まれている場合は、復元を実行する前に既存のリソースを削除してください。
[アプリケーションバックアップ] ページで、[即時復元] をクリックします。
[即時復元] パネルで、パラメータを設定し、[OK] をクリックします。
パラメータ
説明
[名前]
復元タスクの名前。 名前には、小文字と数字を含めることができます。
[バックアップボールト]
バックアップファイルが保存されているバックアップボールトを選択します。
バックアップボールトを選択した後、[バックアップボールトの初期化] をクリックして、復元クラスタをバックアップボールトに関連付けます。 バックアップボールトをクラスタに関連付ける必要があるのは 1 回だけです。 バックアップボールトが初期化されたら、バックアップボールトからバックアップファイルを選択してデータを復元できます。
[バックアップの選択]
バックアップファイルを選択します。
[復元名前空間]
復元する 1 つ以上のバックアップ名前空間を選択できます。 このパラメータを指定しない場合は、フルリストアが実行されます。
説明バックアップにクラスタレベルのリソースが含まれている場合は、このフィールドを空のままにします。
[名前空間のリセット]
他の名前空間のバックアップファイルを選択する場合は、[追加] をクリックし、バックアップファイルが属する名前空間を選択してから、コロン (:) の後にバックアップファイルを復元する名前空間を指定します。
[イメージリポジトリのリセット]
バックアップワークロードで使用されるイメージリポジトリアドレスを変更するには、[追加] をクリックし、左側のテキストフィールドに変更するイメージリポジトリアドレスを入力して、コロン (:) の後に新しいイメージリポジトリアドレスを指定します。 例:
docker.io/library : registry.cn-hangzhou.aliyuncs.com/xxx
。詳細については、「バックアップセンターに関するよくある質問」をご参照ください。
[StorageClass の変換]
スナップショット機能の名前が StorageClass 変換に変更されました。 この機能は、ボリュームバックアップの PVC の StorageClass を変換できます。 たとえば、アプリケーションが NAS ボリュームを使用しているとします。 alicloud-disk StorageClass を選択すると、復元されたアプリケーションはディスクボリュームを使用します。
重要(Cloud Backup によって作成されたディスクボリューム以外のボリューム) FileSystem タイプのボリュームの StorageClass のみを変換できます。
ReadWriteMany ボリュームの場合、ディスクへのリカバリはサポートされていません。 ReadOnlyMany ボリュームの場合、ディスクにリカバリするときは、強制的にディスクがアンマウントされないように、レプリカが複数のノードに同時にマウントされていないことを確認してください。
関連するステートフルまたはステートレスアプリケーション、ボリューム、およびサービスが正常に起動およびアクセスできることを確認します。
復元クラスタ管理ページの左側のナビゲーションウィンドウで、
を選択します。アプリケーションを見つけて、[アクション] 列の [詳細] をクリックします。
[ポッド] タブで、復元されたデプロイメントのステータスが [実行中] であることを確認します。
詳細ページの左側のナビゲーションウィンドウで、
を選択します。[永続ボリューム要求] ページで、PVC が復元されて表示されていることを確認します。
詳細ページの左側のナビゲーションウィンドウで、
を選択します。[サービス] ページで、サービスの外部エンドポイントをクリックして、サービスにアクセスできるかどうかを確認します。
結果の確認
関連するステートフルまたはステートレスアプリケーション、ボリューム、およびサービスが正常に起動およびアクセスできることを確認します。
復元されたクラスタの左側のナビゲーションウィンドウで、
を選択します。管理するアプリケーションを見つけて、[アクション] 列の [詳細] をクリックします。
[ポッド] タブで、アプリケーションの [ステータス] 列に [実行中] と表示されているかどうかを確認します。
左側のナビゲーションウィンドウで、
を選択します。[永続ボリューム要求] ページで、復元された PVC を表示できます。
左側のナビゲーションウィンドウで、
を選択します。[サービス] ページで、サービスの外部エンドポイントをクリックして、サービスにアクセスできるかどうかを確認します。
関連情報
異なるボリュームプラグインを使用するか、異なる Kubernetes バージョンを実行するクラスタ間でアプリケーションを移行する方法の詳細については、「バックアップセンターを使用して、古い Kubernetes バージョンを実行する ACK クラスタ内のアプリケーションを移行する」をご参照ください。
同じリージョン内のクラスタ間でアプリケーションを移行する方法の詳細については、「同じリージョン内のクラスタ間でアプリケーションを移行する」をご参照ください。
リージョン間でアプリケーションを移行する方法の詳細については、「異なるリージョン内のクラスタ間でアプリケーションを移行する」をご参照ください。
kubectl を使用してアプリケーションを移行する方法の詳細については、「kubectl を使用してアプリケーションをバックアップおよび復元する」をご参照ください。