リモートバックアップによるアプリケーションのリカバリ
Astraでは、アプリケーションと整合性のあるフルバックアップを作成できます。このバックアップを使用すると、アプリケーションのデータを使用して、オンプレミスのデータセンターやパブリッククラウドで実行されている別のKubernetesクラスタにリストアできます。
アプリケーションのリカバリが正常に行われるかどうかを検証するには、FlexPod システムで実行されているアプリケーションのオンプレミス障害をシミュレートし、リモートバックアップを使用してクラウドで実行されているKubernetesクラスタにアプリケーションをリストアします。
サンプルアプリケーションは、データベースにMySQLを使用する価格表アプリケーションです。導入を自動化するために、を使用しました "Argo CD" ツール。Argo CDは、Kubernetes向けの宣言型、GitOps、継続的デリバリーツールです。
-
オンプレミスOpenShiftクラスタにログインし、「argocd」という名前の新しいプロジェクトを作成します。
-
OperatorHubで'argocd'を検索し'Argo CD operatorを選択します
-
「argocd」名前空間に演算子をインストールします。
-
オペレータに移動し、Create ArgCDをクリックします。
-
Argo CDインスタンスを'argocd'プロジェクトに配備するには'名前を指定してCreateをクリックします
-
Argo CDにログインするには、デフォルトのユーザはadminで、パスワードは「argocd -NetApp-cluster」という名前のシークレットファイルに含まれています。
-
サイド・メニューから'ルート>ロケーションを選択し'argocd'ルートのURLをクリックしますユーザ名とパスワードを入力します。
-
CLIを使用して、Argo CDにオンプレミスOpenShiftクラスタを追加します。
####Login to Argo CD#### abhinav3@abhinav-ansible$ argocd-linux-amd64 login argocd-netapp-server-argocd.apps.ocp.flexpod.netapp.com --insecure Username: admin Password: 'admin:login' logged in successfully Context'argocd-netapp-server-argocd.apps.ocp.flexpod.netapp.com' updated ####List the On-Premises OpenShift cluster#### abhinav3@abhinav-ansible$ argocd-linux-amd64 cluster add ERRO[0000] Choose a context name from: CURRENT NAME CLUSTER SERVER * default/api-ocp-flexpod-netapp-com:6443/abhinav3 api-ocp-flexpod-netapp-com:6443 https://api.ocp.flexpod.netapp.com:6443 default/api-ocp1-flexpod-netapp-com:6443/abhinav3 api-ocp1-flexpod-netapp-com:6443 https://api.ocp1.flexpod.netapp.com:6443 ####Add On-Premises OpenShift cluster### abhinav3@abhinav-ansible$ argocd-linux-amd64 cluster add default/api-ocp1-flexpod-netapp-com:6443/abhinav3 WARNING: This will create a service account `argocd-manager` on the cluster referenced by context `default/api-ocp1-flexpod-netapp-com:6443/abhinav3` with full cluster level admin privileges. Do you want to continue [y/N]? y INFO[0002] ServiceAccount "argocd-manager" already exists in namespace "kube-system" INFO[0002] ClusterRole "argocd-manager-role" updated INFO[0002] ClusterRoleBinding "argocd-manager-role-binding" updated Cluster 'https://api.ocp1.flexpod.netapp.com:6443' added
-
ArgodCD UIで、[新しいアプリ]をクリックし、アプリ名とコードリポジトリの詳細を入力します。
-
ネームスペースとともにアプリケーションを導入するOpenShiftクラスタを入力します。
-
オンプレミスOpenShiftクラスタにアプリを導入するには、[同期]をクリックします。
-
OpenShift Container Platformコンソールで、プロジェクト価格表に移動し、ストレージでPVCの名前とサイズを確認します。
-
System Managerにログインし、PVCを確認します。
-
ポッドが実行されたら、サイドメニューからネットワーキング/ルートを選択し、「場所」の下のURLをクリックします。
-
価格表アプリのホームページが表示されます。
-
Webページにレコードをいくつか作成します。
-
アプリケーションはAstra Control Centerで検出されます。アプリを管理するには、[アプリケーション]>[検出済み]に移動し、価格表アプリを選択して、[アクション]の[アプリケーションの管理]をクリックします。
-
価格表アプリをクリックし、[データ保護]を選択します。この時点では、Snapshotやバックアップは作成されていません。スナップショットの作成をクリックして、オンデマンドスナップショットを作成します。
NetApp Astra Control Centerは、オンデマンドおよびスケジュールされたスナップショットとバックアップの両方をサポートします。 -
スナップショットが作成され、状態が正常になったら、そのスナップショットを使用してリモートバックアップを作成します。このバックアップはS3バケットに格納されます。
-
AWS S3バケットを選択してバックアップ処理を開始します。
-
バックアップ処理では、AWS S3バケットに複数のオブジェクトを含むフォルダを作成する必要があります。
-
リモートバックアップが完了したら、PVの元のボリュームをホストするStorage Virtual Machine(SVM)を停止して、オンプレミスでの災害をシミュレートします。
-
Webページを更新してシステム停止を確認します。Webページは使用できません。
ウェブサイトは予想どおりに停止しているので、AWSで実行されているOpenShiftクラスタにAstraを使用して、リモートバックアップからアプリケーションを迅速にリカバリしてみましょう。
-
Astra Control Centerで、価格表アプリをクリックし、[データ保護]>[バックアップ]を選択します。バックアップを選択し、[操作]の下の[アプリケーションの復元]をクリックします。
-
デスティネーションクラスタとして「OCP-AWS」を選択し、ネームスペースに名前を付けます。[オンデマンドバックアップ]、[次へ]、[復元]の順にクリックします。
-
「pricelist-app」という名前の新しいアプリケーションは、AWSで実行されるOpenShiftクラスタでプロビジョニングされます。
-
OpenShift Webコンソールで同じことを確認します。
-
「pricelist -aws」プロジェクトの下のポッドがすべて実行されたら、「Routes」に移動し、URLをクリックしてWebページを起動します。
このプロセスでは、貴重なアプリケーションが正常に復元され、Astra Control Centerを利用してAWS上でシームレスに実行されるOpenShiftクラスタでデータの整合性が維持されていることを検証します。
SnapshotコピーとDevTestのアプリケーション移動によるデータ保護
この使用事例は、次のセクションで説明する2つの部分で構成されています。
パート1
Astra Control Centerを使用すると、アプリケーション対応のスナップショットを作成してローカルデータを保護できます。データを誤って削除したり破損したりした場合は、以前に記録したスナップショットを使用して、アプリケーションおよび関連データを既知の正常な状態に戻すことができます。
このシナリオでは、開発とテスト(DevTest)チームが、Ghostブログアプリケーションであるサンプルのステートフルアプリケーション(ブログサイト)を導入し、コンテンツを追加し、アプリケーションを最新バージョンにアップグレードします。Ghostアプリケーションでは、データベースにSQLiteを使用します。アプリケーションをアップグレードする前に、Astra Control Centerを使用してスナップショット(オンデマンド)を作成し、データを保護します。詳細な手順は次のとおりです。
-
サンプルブログアプリをデプロイし、ArgoCDから同期します。
-
最初のOpenShiftクラスタにログインし、Projectに移動して、検索バーにBlogと入力します。
-
サイドメニューから、[Networking]>[Routes]の順に選択し、URLをクリックします。
-
ブログのホームページが表示されます。ブログサイトにコンテンツを追加して公開します。
-
Astra Control Centerにアクセスします。最初に検出タブからアプリケーションを管理してから、Snapshotコピーを作成します。
定義したスケジュールでスナップショット、バックアップ、またはその両方を作成することで、アプリケーションを保護することもできます。詳細については、を参照してください "Snapshot とバックアップでアプリケーションを保護"。 -
オンデマンドスナップショットが正常に作成されたら、アプリケーションを最新バージョンにアップグレードします。現在のイメージのバージョンは「ghost:3.6 -アルパイン」で、ターゲットのバージョンは「ghost:latest」です。アプリをアップグレードするには、Gitリポジトリに直接変更を加え、Argo CDに同期します。
-
ブログサイトがダウンし、アプリケーション全体が破損しているために、最新バージョンへの直接アップグレードがサポートされていないことがわかります。
-
ブログサイトが利用できないことを確認するには、URLを更新します。
-
スナップショットからアプリケーションを復元します。
-
アプリケーションは同じOpenShiftクラスタにリストアされます。
-
アプリケーションのリストアプロセスがただちに開始されます。
-
数分後に、使用可能なスナップショットからアプリケーションが正常にリストアされます。
-
Webページが表示されるかどうかを確認するには、URLを更新します。
DevTestチームは、Astra Control Centerを活用して、ブログサイトアプリとその関連データをスナップショットを使用して正常にリカバリできます。
パート2
Astra Control Centerを使用すると、クラウド上またはオンプレミスで、クラウド上のどの場所にあるかに関係なく、アプリケーション全体をKubernetesクラスタ間でデータとともに移動できます。
-
DevTestチームは、アプリケーションを最初にサポートされているバージョン(「ゴースト- 4.6 -アルプス」)にアップグレードしてから、最終バージョン(「ゴースト-最新」)にアップグレードして、本番環境を準備します。その後、別のFlexPod システムで実行されている本番環境のOpenShiftクラスタにクローニングされているアプリケーションをアップグレードします。
-
この時点で、アプリケーションが最新バージョンにアップグレードされ、本番環境のクラスタにクローニングできる状態になります。
-
新しいテーマを確認するには、ブログサイトを更新します。
-
Astra Control Centerから、VMware vSphereで実行されている他の本番環境OpenShiftクラスタにアプリケーションをクローニングします。
これで、本番環境のOpenShiftクラスタで新しいアプリケーションクローンがプロビジョニングされます。
-
本番環境のOpenShiftクラスタにログインし、プロジェクトブログを検索します。
-
サイドメニューから、Networking > Routesを選択し、Locationの下のURLをクリックします。同じホームページとコンテンツが表示されます。
これでAstra Control Center解決策 の検証は終了です。Kubernetesクラスタが配置されている場所に関係なく、アプリケーション全体とそのデータを1つのKubernetesクラスタから別のクラスタにクローニングできるようになりました。