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


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

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

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

4.8.1.1. サンプルアプリケーションの作成

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

前提条件

  • Red Hat OpenShift GitOps Operator が Hub クラスターにインストールされている。手順は、RHACM のドキュメント を参照してください。
  • 一般消費用のアプリケーションを作成する場合は、アプリケーションが 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.13 として選択します。
    • 次の パス のいずれかを選択します

      • 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 アプリケーションが優先クラスターにデプロイされたので、デプロイを検証できます。

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

    $ oc get pods,pvc -n busybox-sample
    Copy to Clipboard Toggle word wrap

    出力例:

    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
    Copy to Clipboard Toggle word wrap

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

前提条件

  • DRPolicy で参照されている両方の管理対象クラスターが到達可能であることを確認する。そうでない場合、両方のクラスターがオンラインになるまで、アプリケーションは DR で保護されません。

手順

  1. ハブクラスターで、All Clusters に移動します。
  2. Data Services に移動し、Data policies をクリックします。
  3. DRPolicy の最後にあるアクションメニューをクリックして、使用可能なアクションのリストを表示します。
  4. Assign DRPolicy をクリックします。
  5. Apply DRPolicy モーダルが表示されたら、busybox アプリケーションを選択し、PVC ラベルappname=busybox として入力します。
  6. Apply をクリックします。
  7. DRPlacementControl または DRPCハブクラスターbusybox-sample namespace に作成され、CURRENTSTATEDeployed として表示されていることを確認します。このリソースは、このアプリケーションのフェイルオーバーと再配置の両方のアクションに使用されます。

    注記

    yaml 内の PlacementRefDRPolicyRef および PVCSelector フィールド値の編集はサポートされていません。

    $ oc get drpc -n busybox-sample
    Copy to Clipboard Toggle word wrap

    出力例:

    NAME                       AGE     PREFERREDCLUSTER   FAILOVERCLUSTER   DESIREDSTATE   CURRENTSTATE
    busybox-placement-1-drpc   6m59s   ocp4bos1                                            Deployed
    Copy to Clipboard Toggle word wrap
  8. [オプション] プライマリークラスターの Rados ブロックデバイス (RBD) volumereplicationvolumereplicationgroup を確認します。

    $ oc get volumereplications.replication.storage.openshift.io
    Copy to Clipboard Toggle word wrap

    出力例:

    NAME             AGE     VOLUMEREPLICATIONCLASS                  PVCNAME          DESIREDSTATE   CURRENTSTATE
    busybox-pvc      2d16h   rbd-volumereplicationclass-1625360775   busybox-pvc      primary        Primary
    Copy to Clipboard Toggle word wrap
    $ oc get volumereplicationgroups.ramendr.openshift.io
    Copy to Clipboard Toggle word wrap

    出力例:

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

    $ oc get replicationsource -n busybox-sample
    Copy to Clipboard Toggle word wrap

    出力例:

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

    出力例:

    NAME             LAST SYNC              DURATION          NEXT SYNC
    busybox-pvc      2022-12-20T08:46:32Z   4m39.52261108s
    Copy to Clipboard Toggle word wrap

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

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

前提条件

  • Red Hat OpenShift GitOps Operator が Hub クラスターにインストールされている。手順は、RHACM のドキュメント を参照してください。
  • プライマリーとセカンダリーの両方のマネージドクラスターが 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
    Copy to Clipboard Toggle word wrap

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

手順

  1. ハブクラスターで、All Clusters Applications に移動し、Create application をクリックします。
  2. タイプとして Application set を選択します。
  3. 一般ステップ 1 で、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.13 として選択します。
    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 ベースのサンプルアプリケーションへの DRPolicy の適用

前提条件

  • DRPolicy で参照されている両方の管理対象クラスターが到達可能であることを確認する。そうでない場合、両方のクラスターがオンラインになるまで、アプリケーションは DR で保護されません。

手順

  1. ハブクラスターで、All Clusters に移動します。
  2. Data Services に移動し、Data policies をクリックします。
  3. DRPolicy の最後にあるアクションメニューをクリックして、使用可能なアクションのリストを表示します。
  4. Manage policy for Application sets をクリックします。
  5. PVC labelappname=busybox として入力します。
  6. Save changes をクリックします。アプリケーションには protected というタグが付けられています。
  7. Apply をクリックします。
  8. DRPlacementControl または DRPCハブクラスターbusybox-sample namespace に作成され、CURRENTSTATEDeployed として表示されていることを確認します。このリソースは、このアプリケーションのフェイルオーバーと再配置の両方のアクションに使用されます。

    注記

    yaml 内の PlacementRefDRPolicyRef および PVCSelector フィールド値の編集はサポートされていません。

    $ oc get drpc -n busybox-sample
    Copy to Clipboard Toggle word wrap

    出力例:

    NAME                       AGE     PREFERREDCLUSTER   FAILOVERCLUSTER   DESIREDSTATE   CURRENTSTATE
    busybox-placement-1-drpc   6m59s   ocp4bos1                                            Deployed
    Copy to Clipboard Toggle word wrap
  9. [オプション] プライマリークラスターの Rados ブロックデバイス (RBD) volumereplicationvolumereplicationgroup を確認します。

    $ oc get volumereplications.replication.storage.openshift.io
    Copy to Clipboard Toggle word wrap

    出力例:

    NAME             AGE     VOLUMEREPLICATIONCLASS                  PVCNAME          DESIREDSTATE   CURRENTSTATE
    busybox-pvc      2d16h   rbd-volumereplicationclass-1625360775   busybox-pvc      primary        Primary
    Copy to Clipboard Toggle word wrap
    $ oc get volumereplicationgroups.ramendr.openshift.io
    Copy to Clipboard Toggle word wrap

    出力例:

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

    $ oc get replicationsource -n busybox-sample
    Copy to Clipboard Toggle word wrap

    出力例:

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

    出力例:

    NAME             LAST SYNC              DURATION          NEXT SYNC
    busybox-pvc      2022-12-20T08:46:32Z   4m39.52261108s
    Copy to Clipboard Toggle word wrap

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

RHACM コンソールを使用してサンプルアプリケーション busybox を削除できます。

注記

サンプルアプリケーションを削除する手順は、フェイルオーバーと再配置のテストが完了し、アプリケーションを 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 も削除する必要があります。

    1. ハブクラスターの OpenShift Web コンソールにログインし、プロジェクト busybox-sample の Installed Operators に移動します。
    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 は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat