19.8. ローカルディスク上の rootVolume および etcd を使用した OpenStack へのデプロイ
ローカルディスク上の rootVolume と etcd を使用した Red Hat OpenStack Platform (RHOSP) へのデプロイは、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Day 2 オペレーション中に、etcd をルートボリューム (OpenStack Cinder によって提供されるもの) から専用の一時ローカルディスクに移動することで、Red Hat OpenStack Platform (RHOSP) インストールのパフォーマンスの問題を解決および防止できます。
19.8.1. ローカルディスクへの RHOSP のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
既存の RHOSP クラウドがある場合は、そのクラウドから etcd を専用の一時ローカルディスクに移動できます。
この手順は、ローカルディスク上で etcd をテストすることだけを目的としたものです。実稼働クラスターでは使用しないでください。場合によっては、コントロールプレーンが完全に失われる可能性があります。詳細は、「バックアップおよび復元」の「バックアップおよび復元の操作の概要」を参照してください。
前提条件
- Cinder が動作している OpenStack クラウドがある。
- OpenStack クラウドに、OpenShift コントロールプレーンの 3 つのルートボリュームを収容するために、少なくとも 75 GB の利用可能なストレージがある。
-
OpenStack クラウドが、
rbd
ではなくローカルストレージバックエンドを使用する Nova 一時ストレージを使用してデプロイされている。
手順
次のコマンドを実行して、少なくとも 10 GB の一時ディスクを備えたコントロールプレーンの Nova フレーバーを作成します。環境に応じて
--ram
、--disk
、および <flavor_name> の値を置き換えます。openstack flavor create --<ram 16384> --<disk 0> --ephemeral 10 --vcpus 4 <flavor_name>
$ openstack flavor create --<ram 16384> --<disk 0> --ephemeral 10 --vcpus 4 <flavor_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コントロールプレーンのルートボリュームを含むクラスターをデプロイします。以下に例を示します。
サンプル YAML ファイル
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、作成したクラスターをデプロイします。
openshift-install create cluster --dir <installation_directory>
$ openshift-install create cluster --dir <installation_directory>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<installation_directory>
には、以前に作成したカスタマイズ済みの./install-config.yaml
ファイルの場所を指定します。
次の手順に進む前に、次のコマンドを実行して、デプロイしたクラスターが正常であることを確認します。
oc wait clusteroperators --all --for=condition=Progressing=false
$ oc wait clusteroperators --all --for=condition=Progressing=false
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- クラスター Operator の進行が完了しており、クラスターがデプロイまたは更新中でないことを確認します。
次のコマンドを実行して、
ControlPlaneMachineSet
(CPMS) を編集し、etcd によって使用される追加のブロック一時デバイスを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の手順を使用して、コントロールプレーンマシンが正常であることを確認します。
次のコマンドを実行して、コントロールプレーンマシンセットの更新が完了するまで待ちます。
oc wait --timeout=90m --for=condition=Progressing=false controlplanemachineset.machine.openshift.io -n openshift-machine-api cluster
$ oc wait --timeout=90m --for=condition=Progressing=false controlplanemachineset.machine.openshift.io -n openshift-machine-api cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、3 つのコントロールプレーンマシンセットが更新されていることを確認します。
oc wait --timeout=90m --for=jsonpath='{.status.updatedReplicas}'=3 controlplanemachineset.machine.openshift.io -n openshift-machine-api cluster
$ oc wait --timeout=90m --for=jsonpath='{.status.updatedReplicas}'=3 controlplanemachineset.machine.openshift.io -n openshift-machine-api cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、3 つのコントロールプレーンマシンセットが正常であることを確認します。
oc wait --timeout=90m --for=jsonpath='{.status.replicas}'=3 controlplanemachineset.machine.openshift.io -n openshift-machine-api cluster
$ oc wait --timeout=90m --for=jsonpath='{.status.replicas}'=3 controlplanemachineset.machine.openshift.io -n openshift-machine-api cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスター内で
ClusterOperators
が進行中でないことを確認します。oc wait clusteroperators --timeout=30m --all --for=condition=Progressing=false
$ oc wait clusteroperators --timeout=30m --all --for=condition=Progressing=false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 次のスクリプトを実行して、3 つのコントロールプレーンマシンのそれぞれに、以前に作成した追加のブロックデバイスがあることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の YAML ファイルを使用して、
98-var-lib-etcd.yaml
という名前のファイルを作成します。警告この手順は、ローカルディスク上で etcd をテストするためのものです。実稼働クラスターでは使用しないでください。場合によっては、コントロールプレーンが完全に失われる可能性があります。詳細は、「バックアップおよび復元」の「バックアップおよび復元の操作の概要」を参照してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- etcd データベースは、ラベルではなくデバイスによってマウントする必要があります。この設定で使用されるデバイスの依存関係を
systemd
に生成させ、ファイルシステムの作成をトリガーするためです。 - 2
- ファイルシステム
dev/disk/by-label/local-etcd
がすでに存在する場合は実行しないでください。 - 3
/dev/disk/by-label/ephemeral0
が存在しない場合は、警告メッセージが表示されて失敗します。- 4
- 既存のデータをローカル etcd データベースに移行します。この設定では、
/var/lib/etcd
がマウントされた後、CRI-O が起動する前に、つまり etcd がまだ実行されていないときにデータを移行します。 - 5
- etcd をマウントすること、etcd にメンバーディレクトリーを含めないこと、および ostree にメンバーディレクトリーを含めることを必須とします。
- 6
- 以前の移行状態をクリーンアップします。
- 7
- コピーと移動を別々のステップで実行し、完全なメンバーディレクトリーの作成をアトミック操作として実行します。
- 8
- 完全な再帰的なラベルの再設定を実行する前に、マウントポイントディレクトリーの簡単なチェックを実行します。ファイルパス
/var/lib/etcd
内の restorecon がディレクトリーの名前を変更できない場合、再帰的な名前変更が実行されません。
次のコマンドを実行して、新しい
MachineConfig
オブジェクトを作成します。oc create -f 98-var-lib-etcd.yaml
$ oc create -f 98-var-lib-etcd.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記etcd データベースを各コントロールプレーンマシンのローカルディスクに移動するには時間がかかります。
次のコマンドを実行して、etcd データベースが各コントロールプレーンのローカルディスクに転送されたことを確認します。
次のコマンドを実行して、クラスターがまだ更新中であることを確認します。
oc wait --timeout=45m --for=condition=Updating=false machineconfigpool/master
$ oc wait --timeout=45m --for=condition=Updating=false machineconfigpool/master
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターの準備ができていることを確認します。
oc wait node --selector='node-role.kubernetes.io/master' --for condition=Ready --timeout=30s
$ oc wait node --selector='node-role.kubernetes.io/master' --for condition=Ready --timeout=30s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスター Operators がクラスター内で実行されていることを確認します。
oc wait clusteroperators --timeout=30m --all --for=condition=Progressing=false
$ oc wait clusteroperators --timeout=30m --all --for=condition=Progressing=false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow