OpenShift Container Storage is now OpenShift Data Foundation starting with version 4.9.
第5章 ゾーン対応サンプルアプリケーションのインストール
ゾーン対応サンプルアプリケーションをデプロイし、OpenShift Data Foundation、Metro-DR 設定が正しく設定されているかどうかを検証します。
データゾーン間のレイテンシーがあると、ノードやゾーン間のレイテンシーが低い (たとえば、すべてのノードが同じ場所にある) OpenShift クラスターと比較して、パフォーマンスの低下が予想されます。どの程度パフォーマンスが低下するかは、ゾーン間のレイテンシーや、ストレージを使用するアプリケーションの動作 (書き込みトラフィックが多いなど) によって異なります。必要なサービスレベルに対して十分なアプリケーションのパフォーマンスを確保するために、必ず Metro DR クラスター設定で重要なアプリケーションをテストしてください。
5.1. ゾーン認識サンプルアプリケーションのインストール リンクのコピーリンクがクリップボードにコピーされました!
ReadWriteMany (RWX) Persistent Volume Claim (PVC) は、ocs-storagecluster-cephfs ストレージクラスを使用して作成されます。複数の Pod は、新規に作成された RWX PVC を同時に使用します。使用されるアプリケーションは File Uploader と呼ばれます。
アプリケーションがトポロジーゾーン全体に分散されるかについてのデモンストレーションにより、サイトが停止した場合にアプリケーションが引き続き利用可能となります。
このアプリケーションはファイルを保存するために同じ RWX ボリュームを共有するため、このデモンストレーションが可能です。Red Hat OpenShift Data Foundation は、ゾーン認識および高可用性を備えた Metro DR ストレッチクラスターとして設定されているため、これは永続的なデータアクセスにも有効です。
新しいプロジェクトを作成する。
oc new-project my-shared-storage
$ oc new-project my-shared-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow file-uploader という名前の PHP アプリケーションのサンプルをデプロイします。
oc new-app openshift/php:7.3-ubi8~https://github.com/christianh814/openshift-php-upload-demo --name=file-uploader
$ oc new-app openshift/php:7.3-ubi8~https://github.com/christianh814/openshift-php-upload-demo --name=file-uploaderCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ビルドログを表示し、アプリケーションがデプロイされるまで待機します。
oc logs -f bc/file-uploader -n my-shared-storage
$ oc logs -f bc/file-uploader -n my-shared-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Push successfulを確認すると、コマンドプロンプトは tail モードから復帰します。注記new-app コマンドは、アプリケーションを git リポジトリーから直接デプロイして、OpenShift テンプレートを使用しないため、OpenShift ルートリソースはデフォルトでは作成されません。ルートを手動で作成する必要があります。
アプリケーションのスケーリング
アプリケーションを 4 つのレプリカにスケーリングし、そのサービスを公開して、アプリケーションゾーンを認識して使用できるようにします。
oc expose svc/file-uploader -n my-shared-storage
$ oc expose svc/file-uploader -n my-shared-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc scale --replicas=4 deploy/file-uploader -n my-shared-storage
$ oc scale --replicas=4 deploy/file-uploader -n my-shared-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pods -o wide -n my-shared-storage
$ oc get pods -o wide -n my-shared-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 数分後には、4 つの file-uploader Pod が必要です。4 つの file-uploader Pod が
Runningステータスになるまで、上記のコマンドを繰り返します。PVC を作成し、これをアプリケーションに割り当てます。
oc set volume deploy/file-uploader --add --name=my-shared-storage \ -t pvc --claim-mode=ReadWriteMany --claim-size=10Gi \ --claim-name=my-shared-storage --claim-class=ocs-storagecluster-cephfs \ --mount-path=/opt/app-root/src/uploaded \ -n my-shared-storage
$ oc set volume deploy/file-uploader --add --name=my-shared-storage \ -t pvc --claim-mode=ReadWriteMany --claim-size=10Gi \ --claim-name=my-shared-storage --claim-class=ocs-storagecluster-cephfs \ --mount-path=/opt/app-root/src/uploaded \ -n my-shared-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、以下のようになります。
- PVC を作成します。
- ボリューム定義を含めるようにアプリケーションデプロイメントを更新します。
- アプリケーションのデプロイメントを更新して、ボリュームマウントを指定されたマウントパスに割り当てます。
- 4 つのアプリケーション Pod で新規デプロイメントを作成します。
ボリュームの追加の結果を確認します。
oc get pvc -n my-shared-storage
$ oc get pvc -n my-shared-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE my-shared-storage Bound pvc-5402cc8a-e874-4d7e-af76-1eb05bd2e7c7 10Gi RWX ocs-storagecluster-cephfs 52s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE my-shared-storage Bound pvc-5402cc8a-e874-4d7e-af76-1eb05bd2e7c7 10Gi RWX ocs-storagecluster-cephfs 52sCopy to Clipboard Copied! Toggle word wrap Toggle overflow ACCESS MODEが RWX に設定されている点に注意してください。4 つの
file-uploaderPod はすべて同じ RWX ボリュームを使用しています。このアクセスモードがないと、OpenShift は複数の Pod を同じ永続ボリューム (PV) に確実にアタッチしようとしません。ReadWriteOnce (RWO) PV を使用するデプロイメントをスケールアップしようとすると、Pod は同じノードに配置される可能性があります。