4.7. OpenStack への Hosted Control Plane のデプロイ
Red Hat OpenStack Platform (RHOSP) への Hosted Control Plane クラスターのデプロイは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
Red Hat OpenStack Platform (RHOSP) 17.1 上で動作するホステッドクラスターを使用して Hosted Control Plane をデプロイできます。
ホステッドクラスター は、API エンドポイントとコントロールプレーンが管理クラスターでホストされている OpenShift Container Platform クラスターです。Hosted Control Plane では、コントロールプレーンは管理クラスター上の Pod として存在します。各コントロールプレーンに専用の仮想マシンまたは物理マシンを用意する必要はありません。
4.7.1. OpenStack の前提条件 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform (RHOSP) 上にホステッドクラスターを作成する前に、次の要件を満たしていることを確認してください。
- OpenShift Container Platform 管理クラスターバージョン 4.17 以降への管理アクセス権がある。このクラスターを、ベアメタル、RHOSP、またはサポートされているパブリッククラウド上で実行できる。
- HyperShift Operator が、「Hosted Control Plane のデプロイの準備」で指定されているとおりに、管理クラスターにインストールされている。
- 管理クラスターが、デフォルトの Pod ネットワーク CNI である OVN-Kubernetes を使用して設定されています。
-
OpenShift CLI (
oc
) と Hosted Control Plane CLI、hcp
がインストールされている。 ロードバランサーバックエンド (Octavia など) が OCP 管理クラスターにインストールされている。各ホステッドクラスターに対して
kube-api
サービスを作成するために、ロードバランサーが必要です。- Ingress が Octavia ロードバランスを使用して設定されている場合は、RHOSP Octavia サービスがゲストクラスターをホストするクラウドで実行されている。
-
quay.io/openshift-release-dev
リポジトリーに有効な プルシークレット ファイルが存在する。 -
管理クラスターのデフォルトの外部ネットワークに、ゲストクラスターから到達できる。このネットワーク上に、
kube-apiserver
ロードバランサータイプのサービスが作成されている。 Ingress に事前定義された Floating IP アドレスを使用する場合は、ワイルドカードドメイン
*.apps.<cluster_name>.<base_domain>
に対して、このドメインを指す DNS レコードを作成した。-
<cluster_name>
は、管理クラスターの名前です。 -
<base_domain>
は、クラスターのアプリケーションが存在する親 DNS ドメインです。
-
4.7.2. etcd ローカルストレージ用の管理クラスターの準備 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform (RHOSP) 上の Hosted Control Plane (HCP) デプロイメントでは、デフォルトの Cinder ベースの Persistent Volume Claim (PVC) を使用する代わりに、TopoLVM CSI ドライバーによってプロビジョニングされるローカルの一時ストレージを使用することで、etcd のパフォーマンスを向上できます。
前提条件
- HyperShift がインストールされた管理クラスターにアクセスできる。
- RHOSP フレーバーとマシンセットを作成および管理できる。
-
oc
およびopenstack
CLI ツールがインストールおよび設定されている。 - TopoLVM および論理ボリュームマネージャー (LVM) ストレージの概念に精通している。
- 管理クラスターに LVM Storage Operator をインストールした。詳細は、OpenShift Container Platform ドキュメントの「ストレージ」セクションにある「CLI を使用した LVM Storage のインストール」を参照してください。
手順
openstack
CLI を使用して、追加の一時ディスクを含む Nova フレーバーを作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Nova は、そのフレーバーを使用してサーバーが作成されると、一時ディスクをインスタンスに自動的に接続し、それを
vfat
としてフォーマットします。- 新しいフレーバーを使用するコンピュートマシンセットを作成します。詳細は、OpenShift Container Platform ドキュメントの「OpenStack でコンピュートマシンセットを作成する」を参照してください。
- 要件に合わせてマシンセットをスケーリングします。高可用性のためにクラスターをデプロイする場合は、Pod を適切に分散できるように、少なくとも 3 つのワーカーをデプロイする必要があります。
新しいワーカーノードにラベルを付けて、etcd 用であることを識別できるようにします。以下に例を示します。
oc label node <node_name> hypershift-capable=true
$ oc label node <node_name> hypershift-capable=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このラベルは任意であり、後で更新できます。
lvmcluster.yaml
という名前のファイルで、etcd のローカルストレージ設定のために、次のLVMCluster
カスタムリソースを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow このリソースの例について:
-
一時ディスクの場所は
/dev/vdb
です。ほとんどの場合、この場所が使用されます。実際の環境でこの場所が正しいことを確認してください。シンボリックリンクはサポートされていないことに注意してください。 -
デフォルトの Nova 一時ディスクは VFAT でフォーマットされているため、パラメーター
forceWipeDevicesAndDestroyAllData
はTrue
値に設定されています。
-
一時ディスクの場所は
次のコマンドを実行して、
LVMCluster
リソースを適用します。oc apply -f lvmcluster.yaml
oc apply -f lvmcluster.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
LVMCluster
リソースを確認します。oc get lvmcluster -A
$ oc get lvmcluster -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAMESPACE NAME STATUS openshift-storage etcd-hcp Ready
NAMESPACE NAME STATUS openshift-storage etcd-hcp Ready
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
StorageClass
リソースを確認します。oc get storageclass
$ oc get storageclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE lvms-etcd-class topolvm.io Delete WaitForFirstConsumer true 23m standard-csi (default) cinder.csi.openstack.org Delete WaitForFirstConsumer true 56m
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE lvms-etcd-class topolvm.io Delete WaitForFirstConsumer true 23m standard-csi (default) cinder.csi.openstack.org Delete WaitForFirstConsumer true 56m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これで、パフォーマンスの高い etcd 設定を使用してホステッドクラスターをデプロイできるようになりました。デプロイメントプロセスについては、「OpenStack 上でのホステッドクラスターの作成」で説明されています。
4.7.3. Ingress 用の Floating IP の作成 リンクのコピーリンクがクリップボードにコピーされました!
手動による介入なしでホステッドクラスターで Ingress を利用できるようにする場合は、事前に Floating IP アドレスを作成できます。
前提条件
- Red Hat OpenStack Platform (RHOSP) クラウドにアクセスできる。
Ingress に事前定義された Floating IP アドレスを使用する場合は、ワイルドカードドメイン
*.apps.<cluster_name>.<base_domain>
に対して、このドメインを指す DNS レコードを作成した。-
<cluster_name>
は、管理クラスターの名前です。 -
<base_domain>
は、クラスターのアプリケーションが存在する親 DNS ドメインです。
-
手順
次のコマンドを実行して、Floating IP アドレスを作成します。
openstack floating ip create <external_network_id>
$ openstack floating ip create <external_network_id>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
<external_network_id>
- 外部ネットワークの ID を指定します。
Floating IP アドレスを事前に作成せずに、--openstack-ingress-floating-ip
フラグを使用して Floating IP アドレスを指定すると、cloud-provider-openstack
コンポーネントがそれを自動的に作成しようとします。このプロセスは、特定の IP アドレスを使用した Floating IP アドレスの作成が Neutron API ポリシーで許可されている場合にのみ、正常に実行されます。
4.7.4. OpenStack への RHCOS イメージのアップロード リンクのコピーリンクがクリップボードにコピーされました!
Hosted Control Plane および Red Hat OpenStack Platform (RHOSP) デプロイメントでノードプールをデプロイするときに使用する RHCOS イメージを指定する場合は、イメージを RHOSP クラウドにアップロードします。イメージをアップロードしない場合、OpenStack Resource Controller (ORC) は OpenShift Container Platform ミラーからイメージをダウンロードし、ホステッドクラスターが削除された後にイメージを削除します。
前提条件
- OpenShift Container Platform ミラーから RHCOS イメージをダウンロードした。
- RHOSP クラウドにアクセスできる。
手順
次のコマンドを実行して、RHCOS イメージを RHOSP にアップロードします。
openstack image create --disk-format qcow2 --file <image_file_name> rhcos
$ openstack image create --disk-format qcow2 --file <image_file_name> rhcos
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
<image_file_name>
- RHCOS イメージのファイル名を指定します。
4.7.5. OpenStack 上でのホステッドクラスターの作成 リンクのコピーリンクがクリップボードにコピーされました!
hcp
CLI を使用して、Red Hat OpenStack Platform (RHOSP) 上にホステッドクラスターを作成できます。
前提条件
- 「Hosted Control Plane のデプロイの準備」の前提条件の手順をすべて完了した。
- 「OpenStack の前提条件」を確認した。
- 「etcd ローカルストレージ用の管理クラスターの準備」の手順をすべて完了した。
- 管理クラスターにアクセスできる。
- RHOSP クラウドにアクセスできる。
手順
hcp create
コマンドを実行してホステッドクラスターを作成します。たとえば、「etcd ローカルストレージ用の管理クラスターの準備」で詳しく説明されているパフォーマンスの高い etcd 設定を活用するクラスターの場合は、次のように入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
クラスターの作成時には多くのオプションが利用できます。RHOSP 固有のオプションについては、「OpenStack 上で Hosted Control Plane クラスターを作成するためのオプション」を参照してください。一般的なオプションについては、hcp
のドキュメントを参照してください。
検証
次のコマンドを実行して、ホステッドクラスターの準備ができていることを確認します。
oc -n clusters-<cluster_name> get pods
$ oc -n clusters-<cluster_name> get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
<cluster_name>
- クラスターの名前を指定します。
数分後、出力に Hosted Control Plane Pod が実行中であることが表示されます。
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターの etcd 設定を検証するには、次の手順を実行します。
次のコマンドを実行して、etcd 永続ボリューム要求 (PVC) を検証します。
oc get pvc -A
$ oc get pvc -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Hosted Control Plane の etcd Pod 内で、次のコマンドを実行してマウントパスとデバイスを確認します。
df -h /var/lib
$ df -h /var/lib
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
クラスター API (CAPI) プロバイダーが作成する RHOSP リソースには、openshiftClusterID=<infraID>
というラベルでタグ付けされます。
ホステッドクラスターの作成に使用する YAML マニフェストの HostedCluster.Spec.Platform.OpenStack.Tags
フィールドに値を指定すると、このリソースに追加のタグを定義できます。ノードプールをスケールアップすると、タグがリソースに適用されます。
4.7.5.1. OpenStack 上で Hosted Control Plane クラスターを作成するためのオプション リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform (RHOSP) に Hosted Control Plane クラスターをデプロイするときに、hcp
CLI にいくつかのオプションを指定できます。
オプション | 説明 | 必須 |
---|---|---|
|
OpenStack CA 証明書ファイルへのパス。指定されていない場合は、 | いいえ |
|
| いいえ |
|
OpenStack 認証情報ファイルへのパス。指定されていない場合は、
| いいえ |
| サブネットの作成時に提供される DNS サーバーアドレスのリスト。 | いいえ |
| OpenStack 外部ネットワークの ID。 | いいえ |
| OpenShift Ingress の Floating IP。 | いいえ |
|
ノードに割り当てる追加ポート。有効な値は、 | いいえ |
| ノードプールのアベイラビリティーゾーン。 | いいえ |
| ノードプールのフレーバー。 | はい |
| ノードプールのイメージ名。 | いいえ |