OpenShift Container Storage is now OpenShift Data Foundation starting with version 4.9.
第11章 サンプルアプリケーションの作成
プライマリーマネージドクラスターからセカンダリーマネージドクラスターへの failover およびフェイルバックをテストするには、単純なアプリケーションが必要です。busybox というサンプルアプリケーションを例として使用します。
手順
busyboxサンプルアプリケーションの ハブクラスター で namespace または プロジェクト を作成します。oc new-project busybox-sample
$ oc new-project busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記必要に応じて、
busybox-sample以外のプロジェクト名を使用できます。Advanced Cluster Manager コンソールでサンプルアプリケーションをデプロイする場合は、この手順で作成したものと同じプロジェクト名を使用するようにしてください。DRPlacementControl リソースを作成します。
DRPlacementControl は、ハブクラスターに OpenShift DR Hub Operator をインストールした後に利用可能な API です。これは、概説としては、DRPolicy の一部であるクラスター間でのデータ可用性に基づいて配置の決定をオーケストレーションする Advanced Cluster Manager PlacementRule リコンサイラーです。
-
ハブクラスターで、
busybox-sampleプロジェクトで Installed Operators に移動し、OpenShift DR Hub Operator をクリックします。2 つの利用可能な API (DRPolicy と DRPlacementControl) が表示されるはずです。 -
DRPlacementControl のインスタンスを作成してから、YAML ビューに移動します。
busybox-sampleプロジェクトが選択されていることを確認します。 <cluster1> を Advanced Cluster Manager のマネージドクラスターの正しい名前に置き換えたあと、以下の YAML をファイル名
busybox-drpc.yamlにコピーして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
一意の
busybox-drpc.yamlファイルの内容を YAML ビューにコピーします (元のコンテンツを完全に置き換え)。 YAML ビュー画面の Create をクリックします。
以下の CLI コマンドを使用してこのリソースを作成することもできます。
oc create -f busybox-drpc.yaml -n busybox-sample
$ oc create -f busybox-drpc.yaml -n busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
drplacementcontrol.ramendr.openshift.io/busybox-drpc created
drplacementcontrol.ramendr.openshift.io/busybox-drpc createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要このリソースは、
busybox-samplenamespace (または先に作成した namespace) に作成する必要があります。
-
ハブクラスターで、
リソーステンプレートのデプロイ先のターゲットクラスターを定義する Placement Rule リソースを作成します。配置ルールを使用すると、アプリケーションのマルチクラスターデプロイメントが容易になります。
以下の YAML をファイル名
busybox-placementrule.yamlにコピーし、保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow busybox-sampleアプリケーションの PlacementRule リソースを作成します。oc create -f busybox-placementrule.yaml -n busybox-sample
$ oc create -f busybox-placementrule.yaml -n busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
placementrule.apps.open-cluster-management.io/busybox-placement created
placementrule.apps.open-cluster-management.io/busybox-placement createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要このリソースは、
busybox-samplenamespace (または先に作成した namespace) に作成する必要があります。
RHACM コンソールを使用した サンプルアプリケーション の作成
まだログインしていない場合は、OpenShift 認証情報を使用して RHACM コンソールにログインします。
oc get route multicloud-console -n open-cluster-management -o jsonpath --template="https://{.spec.host}/multicloud/applications{'\n'}"$ oc get route multicloud-console -n open-cluster-management -o jsonpath --template="https://{.spec.host}/multicloud/applications{'\n'}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
https://multicloud-console.apps.perf3.example.com/multicloud/applications
https://multicloud-console.apps.perf3.example.com/multicloud/applicationsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Applications に移動し、Create application をクリックします。
- 種類は Subscriptionを選択します。
-
アプリケーションの Name (
busyboxなど) および Namespace (busybox-sampleなど) を入力します。 -
Repository location for resources セクションで Repository type
Gitを選択します。 サンプルアプリケーションの github Branch および Path で、 Git リポジトリー URL を入力します。リソース
busyboxPod および PVC が作成されます。Branch が
mainで、Path はbusybox-odr-metroであるhttps://github.com/RamenDR/ocm-ramen-samplesとして、サンプルアプリケーションリポジトリーを使用します。- Select clusters to deploy to セクションまでフォームを下にスクロールして、Select an existing placement configuration をクリックします。
-
ドロップダウンリストから Existing Placement Rule (
busybox-placementなど) を選択します。 Save をクリックします。
次に表示される画面で下部までスクロールします。アプリケーショントポロジーのチェックマークがすべて緑であることが確認できるはずです。
注記詳細な情報を表示するには、トポロジー要素のいずれかをクリックすると、トポロジービューの右側にウィンドウが表示されます。
サンプルアプリケーションのデプロイメントおよびレプリケーションを確認します。
busyboxアプリケーションが (DRPlacementControl で指定された) preferredCluster にデプロイされたので、デプロイメントを検証できるようになりました。busyboxが RHACM によってデプロイされたマネージドクラスターにログオンします。oc get pods,pvc -n busybox-sample
$ oc get pods,pvc -n busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
NAME READY STATUS RESTARTS AGE pod/busybox 1/1 Running 0 6m NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/busybox-pvc Bound pvc-a56c138a-a1a9-4465-927f-af02afbbff37 1Gi RWO ocs-storagecluster-ceph-rbd 6m
NAME READY STATUS RESTARTS AGE pod/busybox 1/1 Running 0 6m NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/busybox-pvc Bound pvc-a56c138a-a1a9-4465-927f-af02afbbff37 1Gi RWO ocs-storagecluster-ceph-rbd 6mCopy to Clipboard Copied! Toggle word wrap Toggle overflow レプリケーションリソースも
busyboxPVC に作成されていることを確認します。oc get volumereplicationgroup -n busybox-sample
$ oc get volumereplicationgroup -n busybox-sampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
NAME AGE volumereplicationgroup.ramendr.openshift.io/busybox-drpc 6m
NAME AGE volumereplicationgroup.ramendr.openshift.io/busybox-drpc 6mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.1. サンプルアプリケーションの削除 リンクのコピーリンクがクリップボードにコピーされました!
RHACM コンソールを使用してサンプルアプリケーション busybox を削除できます。
サンプルアプリケーションを削除する手順は、フェイルオーバーとフォールバック (再配置) のテストが完了し、アプリケーションを RHACM とマネージドクラスターから削除する準備ができるまで実行しないでください。
手順
- RHACM コンソールで、Applications に移動します。
-
削除するサンプルアプリケーションを検索します (例:
busybox)。 - 削除するアプリケーションの横にある Action メニュー (⋮) をクリックします。
Delete application をクリックします。
Delete application を選択すると、アプリケーション関連のリソースも削除すべきかどうかを求める新規画面が表示されます。
- Remove application related resources チェックボックスを選択して、Subscription および PlacementRule を削除します。
- Delete をクリックします。これにより、Primary マネージドクラスター (またはアプリケーションが実行しているクラスター) の busybox アプリケーションが削除されます。
RHACM コンソールを使用して削除されたリソースのほかに、
busyboxアプリケーションの削除直後にDRPlacementControlも削除する必要があります。-
ハブクラスターの OpenShift Web コンソールにログインし、プロジェクト
busybox-sampleの Installed Operators に移動します。 - OpenShift DR Hub Operator をクリックした後、DRPlacementControl タブをクリックします。
-
削除する
busyboxアプリケーション DRPlacementControl の横にあるアクションメニュー (⋮) をクリックします。 - Delete DRPlacementControl をクリックします。
- Delete をクリックします。
-
ハブクラスターの OpenShift Web コンソールにログインし、プロジェクト
このプロセスを使用して、DRPlacementControl リソースでアプリケーションを削除できます。DRPlacementControl リソースは、CLI を使用してアプリケーション namespace で削除することもできます。