OpenShift Container Storage is now OpenShift Data Foundation starting with version 4.9.
5.2. ゾーンを意識したデプロイメントの変更
現在、file-uploader Deployment はゾーンを認識せず、すべての Pod を同じゾーンでスケジュールできます。この場合、サイトに障害が発生すると、アプリケーションは利用できなくなります。詳細は、Pod トポロジー分散制約を使用した Pod 配置の制御 を参照してください。
アプリケーションデプロイメント設定に Pod 配置ルールを追加して、アプリケーションゾーンを認識させます。
以下のコマンドを実行して出力を確認します。
oc get deployment file-uploader -o yaml -n my-shared-storage | less
$ oc get deployment file-uploader -o yaml -n my-shared-storage | lessCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow トポロジーゾーンラベルを使用するようにデプロイメントを編集します。
oc edit deployment file-uploader -n my-shared-storage
$ oc edit deployment file-uploader -n my-shared-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow StartとEndの間に、以下の新しい行を追加します (前のステップの出力に表示)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
deployment.apps/file-uploader edited
deployment.apps/file-uploader editedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
デプロイを 0 個 の Pod に変更し、その後 4 個 の Pod に戻します。これは、デプロイメントが Pod の配置に関して変更されたために必要です。
- 0 個 の Pod へのスケールダウン
oc scale deployment file-uploader --replicas=0 -n my-shared-storage
$ oc scale deployment file-uploader --replicas=0 -n my-shared-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
deployment.apps/file-uploader scaled
deployment.apps/file-uploader scaledCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 4 個 の Pod へのスケールアップ
oc scale deployment file-uploader --replicas=4 -n my-shared-storage
$ oc scale deployment file-uploader --replicas=4 -n my-shared-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
deployment.apps/file-uploader scaled
deployment.apps/file-uploader scaledCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4 つの Pod が datacenter1 および datacenter2 ゾーンの 4 つのノードに分散されていることを確認します。
oc get pods -o wide -n my-shared-storage | egrep '^file-uploader'| grep -v build | awk '{print $7}' | sort | uniq -c$ oc get pods -o wide -n my-shared-storage | egrep '^file-uploader'| grep -v build | awk '{print $7}' | sort | uniq -cCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
1 perf1-mz8bt-worker-d2hdm 1 perf1-mz8bt-worker-k68rv 1 perf1-mz8bt-worker-ntkp8 1 perf1-mz8bt-worker-qpwsr
1 perf1-mz8bt-worker-d2hdm 1 perf1-mz8bt-worker-k68rv 1 perf1-mz8bt-worker-ntkp8 1 perf1-mz8bt-worker-qpwsrCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用されるゾーンラベルを検索します。
oc get nodes -L topology.kubernetes.io/zone | grep datacenter | grep -v master
$ oc get nodes -L topology.kubernetes.io/zone | grep datacenter | grep -v masterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
perf1-mz8bt-worker-d2hdm Ready worker 35d v1.20.0+5fbfd19 datacenter1 perf1-mz8bt-worker-k68rv Ready worker 35d v1.20.0+5fbfd19 datacenter1 perf1-mz8bt-worker-ntkp8 Ready worker 35d v1.20.0+5fbfd19 datacenter2 perf1-mz8bt-worker-qpwsr Ready worker 35d v1.20.0+5fbfd19 datacenter2
perf1-mz8bt-worker-d2hdm Ready worker 35d v1.20.0+5fbfd19 datacenter1 perf1-mz8bt-worker-k68rv Ready worker 35d v1.20.0+5fbfd19 datacenter1 perf1-mz8bt-worker-ntkp8 Ready worker 35d v1.20.0+5fbfd19 datacenter2 perf1-mz8bt-worker-qpwsr Ready worker 35d v1.20.0+5fbfd19 datacenter2Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブラウザーを使用して file-uploader Web アプリケーションを使用して新規ファイルをアップロードします。
作成されたルートを検索します。
oc get route file-uploader -n my-shared-storage -o jsonpath --template="http://{.spec.host}{'\n'}"$ oc get route file-uploader -n my-shared-storage -o jsonpath --template="http://{.spec.host}{'\n'}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
http://file-uploader-my-shared-storage.apps.cluster-ocs4-abdf.ocs4-abdf.sandbox744.opentlc.com
http://file-uploader-my-shared-storage.apps.cluster-ocs4-abdf.ocs4-abdf.sandbox744.opentlc.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 直前の手順のルートを使用して、ブラウザーを Web アプリケーションに指定します。
Web アプリケーションはアップロードしたすべてのファイルを一覧表示し、新しいファイルをアップロードしたり、既存のデータをダウンロードする機能を提供します。今は何もありません。
ローカルマシンから任意のファイルを選択し、これをアプリケーションにアップロードします。
- Choose file をクリックして任意のファイルを選択します。
アップロード をクリックします。
図5.1 簡単な PHP ベースのファイルのアップロードツール
- List uploaded files をクリックし、現在アップロードされているファイルの一覧を表示します。
OpenShift Container Platform イメージレジストリー、Ingress ルーティング、およびモニターリングサービスはゾーンを認識しません。