4.8. 障害復旧ソリューションをテストするためのサンプルアプリケーションを作成する


OpenShift Data Foundation Disaster Recovery (DR) ソリューションは、RHACM によって管理されるサブスクリプションベースおよび ApplicationSet ベースのアプリケーションの障害復旧をサポートします。詳細は、サブスクリプションApplicationSet のドキュメントを参照してください。

次のセクションでは、アプリケーションを作成して DRPolicy をアプリケーションに適用する方法を詳しく説明します。

4.8.1. サブスクリプションベースのアプリケーション

4.8.1.1. サンプルのサブスクリプションベースのアプリケーションを作成する

プライマリーマネージドクラスター から セカンダリーマネージドクラスター への failover および relocate をテストするには、サンプルアプリケーションが必要です。

前提条件

  • 一般消費用のアプリケーションを作成する場合は、アプリケーションが 1 つのクラスターのみにデプロイされるようにします。
  • busybox というサンプルアプリケーションを例として使用します。
  • アプリケーションのすべての外部ルートが、アプリケーションがフェイルオーバーまたは再配置されたときのトラフィックリダイレクト用に Global Traffic Manager (GTM) または Global Server Load Balancing (GLSB) サービスを使用して設定されていることを確認します。
  • ベストプラクティスとして、一緒に属する Red Hat Advanced Cluster Management (RHACM) サブスクリプションをグループ化し、それらをグループとして DR で保護する単一の配置ルールを参照します。さらに、フェイルオーバーや再配置などの将来の DR アクションのために、その配置ルールを、サブスクリプションを論理的にグループ化する単一のアプリケーションとして作成します。

    注記

    関連のないサブスクリプションが配置アクションで同じ配置ルールを参照している場合、配置ルールを参照するすべてのサブスクリプションが DR ワークフローによって制御されるため、これらのサブスクリプションも DR で保護されます。

手順

  1. ハブクラスターで、Applications に移動し、Create application をクリックします。
  2. 種類は Subscriptionを選択します。
  3. アプリケーションの Name (busybox など) および Namespace (busybox-sample など) を入力します。
  4. Repository location for resources セクションで Repository type Git を選択します。
  5. サンプルアプリケーションの github Branch および Path で、Git リポジトリー URL を入力します。リソース busybox Pod および PVC が作成されます。

    • サンプルアプリケーションリポジトリーを https://github.com/red-hat-storage/ocm-ramen-samples として使用します。
    • Branchrelease-4.16 を選択します。
    • 次の パス のいずれかを選択します

      • RBD Regional-DR を使用するための busybox-odr
      • CephFS Regional-DR を使用するための busybox-odr-cephfs
  6. Deploy application resources on clusters with all specified labels が表示されるまで、フォームを下にスクロールします。

    • グローバル Cluster sets、またはお使いの環境で、正しいマネージドクラスターが含まれるクラスターを選択します。
    • ラベル <name> を追加し、その値を マネージドクラスター 名に設定します。
  7. 右上隅にある 作成 をクリックします。

    後続の画面で、Topology タブに移動します。アプリケーショントポロジーのチェックマークがすべて緑であることが確認できるはずです。

    注記

    詳細な情報を表示するには、トポロジー要素のいずれかをクリックすると、トポロジービューの右側にウィンドウが表示されます。

  8. サンプルアプリケーションのデプロイを検証しています。

    busybox アプリケーションが優先クラスターにデプロイされたので、デプロイを検証できます。

    RHACM によって busybox がデプロイされたマネージドクラスターにログインします。

    $ oc get pods,pvc -n busybox-sample

    出力例:

    NAME                          READY   STATUS    RESTARTS   AGE
    pod/busybox-67bf494b9-zl5tr   1/1     Running   0          77s
    
    
    NAME                                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                AGE
    persistentvolumeclaim/busybox-pvc   Bound    pvc-c732e5fe-daaf-4c4d-99dd-462e04c18412   5Gi        RWO            ocs-storagecluster-ceph-rbd   77s

4.8.1.2. サンプルアプリケーションにデータポリシーを適用する

前提条件

  • データポリシーで参照される両方のマネージドクラスターがアクセス可能である。そうでない場合、両方のクラスターがオンラインになるまで、アプリケーションが障害復旧で保護されません。

手順

  1. ハブクラスターで、All Clusters Applications に移動します。
  2. アプリケーションの最後にあるアクションメニューをクリックして、使用可能なアクションのリストを表示します。
  3. Manage data policy Assign data policy をクリックします。
  4. Policy を選択し、Next をクリックします。
  5. Application resource を選択し、PVC label selector を使用して、選択したアプリケーションリソースの PVC label を選択します。

    注記

    選択したアプリケーションリソースに対して複数の PVC ラベルを選択できます。Add application resource オプションを使用して、複数のリソースを追加することもできます。

  6. すべてのアプリケーションリソースを追加したら、Next をクリックします。
  7. Policy configuration details を確認し、Assign をクリックします。新しく割り当てられたデータポリシーが Manage data policy モーダルリストビューに表示されます。
  8. アプリケーションページで、割り当てられたポリシーの詳細を表示できることを確認します。

    1. アプリケーションページで、Data policy 列に移動し、policy link をクリックしてビューをデプロイメントします。
    2. 割り当てられたポリシーの数と、フェイルオーバーおよび再配置のステータスが表示されることを確認します。
    3. View more details をクリックして、アプリケーションで使用されているポリシーによる進行中のアクティビティーのステータスを表示します。
  9. オプション: プライマリークラスター上の RADOS ブロックデバイス (RBD) volumereplication および volumereplicationgroup を確認します。

    $ oc get volumereplications.replication.storage.openshift.io -A

    出力例:

    NAME             AGE     VOLUMEREPLICATIONCLASS                  PVCNAME          DESIREDSTATE   CURRENTSTATE
    busybox-pvc      2d16h   rbd-volumereplicationclass-1625360775   busybox-pvc      primary        Primary
    $ oc get volumereplicationgroups.ramendr.openshift.io -A

    出力例:

    NAME           DESIREDSTATE   CURRENTSTATE
    busybox-drpc   primary        Primary
  10. オプション: CephFS volsync レプリケーションソースがプライマリークラスターで正常にセットアップされ、VolSync ReplicationDestination がフェイルオーバークラスターでセットアップされていることを確認します。

    $ oc get replicationsource -n busybox-sample

    出力例:

    NAME             SOURCE           LAST SYNC              DURATION          NEXT SYNC
    busybox-pvc      busybox-pvc      2022-12-20T08:46:07Z   1m7.794661104s    2022-12-20T08:50:00Z
    $ oc get replicationdestination -n busybox-sample

    出力例:

    NAME             LAST SYNC              DURATION          NEXT SYNC
    busybox-pvc      2022-12-20T08:46:32Z   4m39.52261108s

4.8.2. ApplicationSet ベースのアプリケーション

4.8.2.1. ApplicationSet ベースのアプリケーションの作成

前提条件

  • Red Hat OpenShift GitOps Operator が、ハブクラスタープライマリーマネージドクラスターセカンダリーマネージドクラスター の 3 つのクラスターすべてにインストールされている。手順は、Web コンソールでの Red Hat OpenShift GitOps Operator のインストール を参照してください。
  • ハブクラスターで、プライマリークラスターとセカンダリーマネージドクラスターの両方が GitOps に登録されている。登録手順は、マネージドクラスターの GitOps への登録 を参照してください。次に、GitOpsCluster リソースによる両方のマネージドクラスターの登録に使用される Placement に、クラスターが使用不可になった場合に対処するための toleration があるかどうかを確認します。oc get placement <placement-name> -n openshift-gitops -o yaml コマンドを使用して、次の toleration が Placement に追加されているかどうかを確認できます。

      tolerations:
      - key: cluster.open-cluster-management.io/unreachable
        operator: Exists
      - key: cluster.open-cluster-management.io/unavailable
        operator: Exists

    toleration が追加されていない場合は、Red Hat Advanced Cluster Management および OpenShift GitOps のアプリケーション配置 toleration の設定 を参照してください。

  • プライマリー マネージドクラスターと セカンダリー マネージドクラスターの両方で ClusterRoleBinding yaml が作成済みである。手順は、RHACM ドキュメントの前提条件の章 を参照してください。

手順

  1. ハブクラスターで、All Clusters Applications に移動し、Create application をクリックします。
  2. アプリケーションタイプとして Argo CD ApplicationSet - Pull model を選択します。
  3. General ステップで、Application set name を入力します。
  4. Argo サーバーopenshift-gitops を選択し、Requeue time180 秒に設定します。
  5. Next をクリックします。
  6. Repository location for resources セクションで Repository type Git を選択します。
  7. サンプルアプリケーションの github Branch および Path で、Git リポジトリー URL を入力します。リソース busybox Pod および PVC が作成されます。

    1. サンプルアプリケーションリポジトリーに https://github.com/red-hat-storage/ocm-ramen-samples を使用します。
    2. Revisionrelease-4.16 を選択します。
    3. 次のパスのいずれかを選択します

      • RBD Regional-DR を使用するための busybox-odr
      • CephFS Regional-DR を使用するための busybox-odr-cephfs
  8. Remote namespace の値 (例: busybox-sample) を入力し、Next をクリックします。
  9. 要件に応じて Sync policy 設定を選択するか、デフォルトの選択をそのまま使用して、Next をクリックします。

    1 つ以上のオプションを選択できます。

  10. ラベル式で、ラベル <name> を追加し、その値を マネージドクラスター 名に設定します。
  11. Next をクリックします。
  12. 設定の詳細を確認し、Submit をクリックします。

4.8.2.2. ApplicationSet ベースのサンプルアプリケーションにデータポリシーを適用する

前提条件

  • データポリシーで参照される両方のマネージドクラスターがアクセス可能である。そうでない場合、両方のクラスターがオンラインになるまで、アプリケーションが障害復旧で保護されません。

手順

  1. ハブクラスターで、All Clusters Applications に移動します。
  2. アプリケーションの最後にあるアクションメニューをクリックして、使用可能なアクションのリストを表示します。
  3. Manage data policy Assign data policy をクリックします。
  4. Policy を選択し、Next をクリックします。
  5. Application resource を選択し、PVC label selector を使用して、選択したアプリケーションリソースの PVC label を選択します。

    注記

    選択したアプリケーションリソースに対して複数の PVC ラベルを選択できます。

  6. すべてのアプリケーションリソースを追加したら、Next をクリックします。
  7. Policy configuration details を確認し、Assign をクリックします。新しく割り当てられたデータポリシーが Manage data policy モーダルリストビューに表示されます。
  8. アプリケーションページで、割り当てられたポリシーの詳細を表示できることを確認します。

    1. アプリケーションページで、Data policy 列に移動し、policy link をクリックしてビューをデプロイメントします。
    2. 割り当てられたポリシーの数と、フェイルオーバーおよび再配置のステータスが表示されることを確認します。
  9. オプション: プライマリークラスター上の Rados ブロックデバイス (RBD) volumereplication および volumereplicationgroup を確認します。

    $ oc get volumereplications.replication.storage.openshift.io -A

    出力例:

    NAME             AGE     VOLUMEREPLICATIONCLASS                  PVCNAME          DESIREDSTATE   CURRENTSTATE
    busybox-pvc      2d16h   rbd-volumereplicationclass-1625360775   busybox-pvc      primary        Primary
    $ oc get volumereplicationgroups.ramendr.openshift.io -A

    出力例:

    NAME           DESIREDSTATE   CURRENTSTATE
    busybox-drpc   primary        Primary
  10. オプション: CephFS volsync レプリケーションソースがプライマリークラスターで正常にセットアップされ、VolSync ReplicationDestination がフェイルオーバークラスターでセットアップされていることを確認します。

    $ oc get replicationsource -n busybox-sample

    出力例:

    NAME             SOURCE           LAST SYNC              DURATION          NEXT SYNC
    busybox-pvc      busybox-pvc      2022-12-20T08:46:07Z   1m7.794661104s    2022-12-20T08:50:00Z
    $ oc get replicationdestination -n busybox-sample

    出力例:

    NAME             LAST SYNC              DURATION          NEXT SYNC
    busybox-pvc      2022-12-20T08:46:32Z   4m39.52261108s

4.8.3. サンプルアプリケーションの削除

このセクションでは、RHACM コンソールを使用してサンプルアプリケーションの Busybox を削除する手順を説明します。

重要

DR で保護されたアプリケーションを削除する場合は、DRPolicy に属する両方のクラスターへのアクセスが必要です。これは、保護されたすべての API リソースと、それぞれの S3 ストア内のリソースが、DR 保護の削除の一環として確実に消去されるようにするためです。いずれかのクラスターへのアクセスが正常でない場合、ハブ上のアプリケーションの DRPlacementControl リソースを削除すると、Deleting の状態のままになります。

前提条件

  • サンプルアプリケーションを削除する手順は、フェイルオーバーと再配置のテストが完了し、アプリケーションを RHACM とマネージドクラスターから削除する準備ができるまで実行しないでください。

手順

  1. RHACM コンソールで、Applications に移動します。
  2. 削除するサンプルアプリケーションを検索します (例: busybox)。
  3. 削除するアプリケーションの横にある Action メニュー (⋮) をクリックします。
  4. Delete application をクリックします。

    Delete application を選択すると、アプリケーション関連のリソースも削除すべきかどうかを求める新規画面が表示されます。

  5. Remove application related resources チェックボックスを選択して、Subscription および PlacementRule を削除します。
  6. Delete をクリックします。これにより、Primary マネージドクラスター (またはアプリケーションが実行しているクラスター) の busybox アプリケーションが削除されます。
  7. RHACM コンソールを使用して削除されたリソースに加えて、busybox アプリケーションの削除後に DRPlacementControl が自動削除されない場合は、DRPlacementControl も削除します。

    1. ハブクラスターの OpenShift Web コンソールにログインし、プロジェクト busybox-sample の Installed Operators に移動します。

      ApplicationSet アプリケーションの場合は、プロジェクトを openshift-gitops として選択します。

    2. OpenShift DR Hub Operator をクリックした後、DRPlacementControl タブをクリックします。
    3. 削除する busybox アプリケーション DRPlacementControl の横にあるアクションメニュー (⋮) をクリックします。
    4. Delete DRPlacementControl をクリックします。
    5. Delete をクリックします。
注記

このプロセスを使用して、DRPlacementControl リソースでアプリケーションを削除できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.