PX-Backup で手軽にハイブリッド・クラウドを体験

【07.02.2021 JST】PX-Backup を使用して手軽にハイブリッド・クラウドを実現する方法をデモ形式でご説明します。

PX-Backup で手軽にハイブリッド・クラウドを体験

今回は、以前のブログでもご紹介したコンテナのバックアップ/リストア機能「PX-Backup」を使用して手軽にハイブリッド・クラウドを実現する方法をデモ形式でご説明します。

PX-Backup で実現するハイブリッド・クラウド — シナリオ

オンプレにあるクラスタ(px-cluster-primary)で動く nginx を AWS 上の S3 バケツ(mizo-aws-bucket01)にバックアップし、AWS 上で動くクラスタ(mizo-aws-cluster01)にクラスタをまたいでリストアが可能なことを確認します。

ここでは、手軽にハイブリッド・クラウドを実現するサンプルとして、ステートレスな(Portworx のボリュームを使用していない) nginx を Portworx Enterprise(SDS)が稼働していない AWS 上のクラスタへ移動する一連の流れを試行しました。

実行手順

手順 1:AWS 上で S3 のバケツを作成する

AWS 上で S3 のバケツを作成します(例:mizo-aws-bucket01)。

AWS 上で S3 のバケツを作成

手順 2:PX-Backup の GUI からクラウド・アカウントを追加する

メイン画面右上にある「Settings」→「Cloud Settings」を選択し、Cloud Account の横に位置する 「+ Add」をクリックします。

PX-Buckup - Cloud Account の追加

cloud provider として「AWS / S3 Compliant Object Store」を選択し、AWS アカウント情報を入力したら、画面右下の「Add」をクリックします。

PX-Backup - AWS アカウント情報を入力

手順 3:PX-Backup の GUI からバックアップ・ロケーション(Backup Location)を追加する

メイン画面右上の「Settings」→「Cloud Settings」を選択し、Backup Locations の横に位置する「+ Add」をクリックします。

手順 2 で登録した AWS の「Cloud Account」と、手順 1 で作成した「Bucket」、「Region」、「Endpoint」を入力します。

PX-Backup - Backup Location

登録完了後の「Cloud Settings」の画面は下図のようになります。複数のクラウド・アカウント(Cloud Accounts)や、バックアップ・ロケーション (Backup Locations)の作成が可能で、バックアップごとに最適なロケーションを選択できます。

PX-Backup - Cloud Settings

手順 4:AWS の EKS サービス上でテスト用のクラスタを作成する

今回はシンプルに、AWS CloudShell から eksctl コマンドを利用して 3 つの worker ノードを持つクラスタを作成しました。

手順 5:AWS 上に作成したクラスタとオンプレのクラスタを PX-Backup に登録する

メイン画面の右上にある「+ Add Cluster」をクリックします。

PX-Backup - クラスタの登録Add Kubernetes Cluster の画面で、必要な情報を入力します。

  • Cluster name:クラスタ名として任意の名前を入力します。
  • Kubeconfig:対象クラスタ上で kubectl config view --flatten --minify コマンドを実行して得られる、クラスタのコンフィグレーション情報を入力します。
  • Kubernetes Service:今回は EKS を選択します。
  • Cloud Account:手順 2 で登録したクラウド・アカウント(Cloud Account)を選択します。

PX-Backup - Add Kubernetes Cluster

AWS 側のクラスタ(mizo-aws-cluster01)と同様に、オンプレ側のクラスタ(px-cluster-primary)も登録します。

PX-Backup - オンプレのクラスタを登録

手順 6:STORK をインストールする

Portworx(STORK*1)がインストールされていないクラスタをバックアップ/リストア対象とする場合は、画面下部に表示されるインストラクションに従って「Non PX Cluster」をクリックし、インストール・コマンドをコピーします。

PX-Backup - STORK のインストール

インストール・コマンドを対象クラスタ上で実行します。今回は、オンプレのクラスタには Porworx がインストールされているので、AWS 側のクラスタのみでの実行になります。

上記のコマンドが実行されると、対象クラスタに STORK がインストールされます。

*1 STORK(STorage Orchestrator Runtime for Kubernetes)は、CNCF にオープンソース(Apache 2.0 License)として Portworx が開発、保守している Kubernetes Scheduler Extension です。ボリューム・スナップショット、ボリューム暗号化、分離、クラスタ内の最適なボリューム配置を Portworx Service などと連携して実現します。

手順 7:テスト用に nginx をオンプレのクラスタ上に作成する

手順 8:オンプレ側の nginx を、手順 1 で作成した AWS 上の S3 バケツにバックアップする

default 名前空間にあるリソースの中から nginx を選択し、「Backup」ボタンをクリックします。

PX-Backup - オンプレ側の nginx を S3 バケツにバックアップ

任意のバックアップ名を入力し、手順 3 で作成したバックアップ・ロケーション(Backup location)を選択して「Create」ボタンをクリックします。

PX-Backup - Create Backup

バックアップの作成に成功すると、AWS 上の S3 に新しくオブジェクトがバックアップされているのが見えます。

PX-Backup - Create Backup

手順 9:バックアップしたアプリケーションを AWS 上のクラスタにリストアする

バックアップ一覧画面から、先ほど取得したバックアップのケバブメニュー「」をクリックして「Restore」を選択します。

PX-Backup - Restore

任意の名前を入力します。リストア先のクラスタ(destination cluster)として、バックアップ取得元の px-cluster-primary ではなく、AWS 上の mizo-aws-cluster01 を選択し、「Restore」ボタンをクリックします。なお、ここでは、元のアプリが存在した名前空間である default ではなく、AWS 上のクラスタにない名前空間 green を指定しています。

PX-Backup - リストア

AWS 上のリストア先のクラスタで、新しく green という名前空間が作成され、レプリカ 2 で設定した nginx が実行されていることが確認できます。

PX-Backup - リストア

今回は、バックアップ/リストアを GUI を使用して手動で行う方法をご説明しましたが、PX-Migrate 機能を利用することで、リストアを含めたマイグレーションをスケジューリングして自動的に行うことができます。PX-Migrate 機能については、以前の投稿「Portworx PX-DR:コンテナのディザスタ・リカバリ(非同期レプリケーション編)」をご参照ください。

以上、PX-Backup で実現する簡単なハイブリッド・クラウドのデモでした。数 100 KB サイズのステートレスな nginx コンテナでのデモでしたが、コンテナの特長である軽量さ、ポータビリティの高さ、ハイブリッド/マルチクラウドとの親和性を実感できました。MySQL のようなステートフルなデータを持つアプリケーションや、Kubernetes クラスタ自体が持つリソース、複数のコンテナが混在するアプリケーション(名前空間)でも、PX-Backup を使用することで、シンプルな GUI で手軽にハイブリッド/マルチクラウドを実現できそうだとご想像いただけますと幸いです。

最後に、Google Cloud と Azure 間でのアプリケーション移行のデモ動画をご紹介します。あわせてご覧ください。

Cross-Cloud Application Migration with Google Cloud and Microsoft Azure on OpenShift 4.2 - YouTube


Pure Storage、Pure Storage のロゴ、およびその他全ての Pure Storage のマーク、製品名、サービス名は、米国およびその他の国における Pure Storage, Inc. の商標または登録商標です。その他記載の会社名、製品名は、各社の商標または登録商標です。