バックアップセンターを使用して、同じリージョン内のKubernetesクラスターのアプリケーションをバックアップおよび復元できます。 これにより、Kubernetesクラスターのバックアップとディザスタリカバリを実装できます。
前提条件
ボリュームが復元されるクラスターが作成されます。 Elastic Compute Service (ECS) インスタンスのスナップショットを使用してディスクデータを復元できるようにするには、Kubernetesバージョンのクラスターを1.18以降に更新することを推奨します。 詳細については、「ACK管理クラスターの作成」、「ACK専用クラスターの作成」、または「クラスター登録プロキシの作成とデータセンターにデプロイされたKubernetesクラスターの登録」をご参照ください。
重要復元クラスターでは、Container Storage Interface (CSI) プラグインを使用する必要があります。 FlexVolumeを使用するクラスター、またはcsi-compatible-controllerとFlexVolumeを使用するクラスターでは、アプリケーションの復元はサポートされません。
バックアップセンターは、アプリケーションのバックアップと復元に使用されます。 復元タスクを実行する前に、復元クラスターにシステムコンポーネントをインストールして構成する必要があります。 例:
aliyun-acr-credential-helper: 復元クラスターにアクセス許可を付与し、acr-configurationを設定する必要があります。
alb-ingress-controller: ALBConfigを設定する必要があります。
バックアップコンポーネントがインストールされ、ボリュームがバックアップされたクラスターとボリュームが復元されたクラスターに権限が付与されます。 詳細については、「migrate-controllerのインストールと権限の付与」をご参照ください。
同じリージョンのACKクラスター間でWordPressアプリケーションを移行する
復元タスクを実行すると、復元クラスターのリソースのAPIバージョンが自動的に推奨バージョンに変更されます。 たとえば、Kubernetes 1.16を実行するクラスターでAPIバージョンがextensions/v1beta1であるデプロイは、Kubernetes 1.28を実行するクラスターで復元されると、自動的にapps/v1に変更されます。 バックアップセンターを使用して古いKubernetesバージョンを実行するACKクラスターでアプリケーションを移行する方法の詳細については、「バックアップセンターを使用して古いKubernetesバージョンを実行するACKクラスターでアプリケーションを移行する」をご参照ください。
例
この例では、Cluster_AとCluster_Bが中国 (フフホト) リージョンに作成されます。 Cluster_Aで実行されるアプリケーションがバックアップされます。 次に、アプリケーションのバックアップファイルを使用して、Cluster_Bのアプリケーションを復元します。
KubernetesクラスターにWordPressアプリケーションをデプロイし、WordPress Webサイトにブログ投稿を公開します。 ディスクを使用してテキストコンテンツを保存し、NASファイルシステムを使用して画像をブログ投稿に保存します。 このように、ディスクボリュームとNASボリュームの両方を使用してアプリケーションデータが保存されます。 バックアップセンター機能を使用して、バックアップクラスターでWordPressアプリケーションをバックアップします。 次に、アプリケーションとアプリケーションのデータを復元クラスターに復元し、データとアプリケーションの整合性を検証します。
手順
Container Service for Kubernetes (ACK) マネージドクラスターCluster_A (バックアップクラスター) およびCluster_B (リストアクラスター) を作成します。
説明ECSインスタンスのスナップショットを使用してディスクデータを復元できるようにするには、KubernetesバージョンのCluster_Bを1.18以降に更新することを推奨します。
Cluster_AにWordPressアプリケーションをインストールします。 詳細については、「Helmを使用したWordPressアプリケーションのデプロイ」をご参照ください。
Cluster_Aにmigrate-controllerコンポーネントをインストールし、権限を付与します。 コンポーネントのインストール時にバックアップコンテナーを作成します。
migrate-controllerのインストール方法の詳細については、「migrate-controllerのインストールとアクセス許可の付与」をご参照ください。 migrate-controllerをインストールすると、システムは自動的にバックアップボールトを検索します。 既存のバックアップコンテナーがある場合は、別のバックアップコンテナーを作成する必要はありません。 バックアップコンテナーの作成方法の詳細については、「バックアップコンテナーの作成」をご参照ください。
Cluster_Aに123backup-1という名前のバックアップタスクを作成します。 詳細については、「バックアップ計画の作成または即時バックアップ」をご参照ください。
デフォルトの名前空間をバックアップします。 123バックアップ-1バックアップタスクが完了状態になると、Cluster_Bの [アプリケーションバックアップ] ページの [バックアップとスナップショット] タブでバックアップタスクを表示できます。
Cluster_Bの [アプリケーションバックアップ] ページで、[今すぐ復元] をクリックし、バックアップタスクのバックアップコンテナーを選択します。 バックアップセンターがバックアップレコードをクラスターに同期するのを待ちます。 バックアップボールトの初期化後、バックアップファイル123backup-1を選択できます。 詳細については、「アプリケーションとボリュームの復元」をご参照ください。
説明バックアップボールトを選択したときにバックアップボールトを初期化するように求められた場合は、[バックアップボールトの初期化] をクリックして、バックアップボールトをCluster_Bに関連付けます。
復元タスクが正常に完了したことを確認します。
Cluster_Bの詳細ページの左側のナビゲーションウィンドウで、
を選択します。 WordPressアプリケーションを見つけ、[操作] 列の [詳細] をクリックし、WordPressアプリケーションが [実行中] 状態かどうかを確認します。詳細ページの左側のナビゲーションウィンドウで、
を選択します。[サービス] ページで、新しくデプロイされたアプリケーションを見つけ、[外部エンドポイント] 列のハイパーリンクをクリックします。 WordPressホームページが表示されます。
関連ドキュメント
異なるボリュームプラグインを使用する、または異なるバージョンのKubernetesを実行するクラスター間でアプリケーションを移行する方法の詳細については、「バックアップセンターを使用して、古いバージョンのKubernetesを実行するACKクラスターでアプリケーションを移行する」をご参照ください。
リージョン間でアプリケーションを移行する方法の詳細については、「異なるリージョンのクラスター間でのアプリケーションの移行」をご参照ください。
CLIを使用してアプリケーションを移行する方法の詳細については、「kubectlを使用してアプリケーションをバックアップおよび復元する」をご参照ください。