第5章 director Operator を使用したオーバークラウドノードの作成
Red Hat OpenStack Platform オーバークラウドは、コントロールプレーンサービスを提供するコントロールノードや、コンピュートリソースを提供する Compute ノードなど、複数のノードで設定されます。高可用性に対応したオーバークラウドには、3 つのコントローラーノードと少なくとも 1 つの Compute ノードが必要です。OpenStackBaremetalSet リソースで Compute ノードを、OpenStackControlPlane リソースでコントローラーノードを作成することができます。
デフォルトでは、自動検出はなく、仮想マシンがホストされている OpenShift ワーカーノードで動作します。OpenShift ワーカーノードの問題を自動検出する方法の詳細は、マシンのヘルスチェックのデプロイ を参照してください。
5.1. OpenStackControlPlane でのコントロールプレーンの作成
オーバークラウドのコントロールプレーンには、オーバークラウドの機能を管理するメインの Red Hat OpenStack Platform サービスが含まれます。コントロールプレーンは、通常 3 つのコントローラーノードで設定されており、他のコントロールプレーンベースのコンポーザブルロールにスケーリングできます。コンポーザブルロールを使用する場合は、各サービスは 3 つの追加の専用ノードで実行される必要があり、Pacemaker のクォーラムを維持するために、コントロールプレーン内のノードの合計数を追加する必要があります。
OpenStackControlPlane カスタムリソースは、コントロールプレーンベースのノードを OpenShift Virtualization 内の仮想マシンとして作成します。
前提条件
- OpenShift Container Platform クラスターが稼働し、director Operator が正しくインストールされていることを確認する。
-
oc
コマンドラインツールがワークステーションにインストールされていることを確認する。 - OpenStackNetConfig リソースを使用して、コントロールプレーンネットワークおよび追加の分離ネットワークを作成します。
手順
ワークステーションに
openstack-controller.yaml
という名前のファイルを作成します。コントローラーノードのリソース仕様を含めます。たとえば、3 つのコントローラーノードで設定されるコントロールプレーンの仕様は以下のとおりです。apiVersion: osp-director.openstack.org/v1beta2 kind: OpenStackControlPlane metadata: name: overcloud namespace: openstack spec: openStackClientNetworks: - ctlplane - internal_api - external openStackClientStorageClass: host-nfs-storageclass passwordSecret: userpassword virtualMachineRoles: Controller: roleName: Controller roleCount: 3 networks: - ctlplane - internal_api - external - tenant - storage - storage_mgmt cores: 12 memory: 64 rootDisk: diskSize: 100 baseImageVolumeName: openstack-base-img # storageClass must support RWX to be able to live migrate VMs storageClass: host-nfs-storageclass storageAccessMode: ReadWriteMany # When using OpenShift Virtualization with OpenShift Container Platform Container Storage, # specify RBD block mode persistent volume claims (PVCs) when creating virtual machine disks. # With virtual machine disks, RBD block mode volumes are more efficient and provide better # performance than Ceph FS or RBD filesystem-mode PVCs. # To specify RBD block mode PVCs, use the 'ocs-storagecluster-ceph-rbd' storage class and # VolumeMode: Block. storageVolumeMode: Filesystem # optional configure additional discs to be attached to the VMs, # need to be configured manually inside the VMs where to be used. additionalDisks: - name: datadisk diskSize: 500 storageClass: host-nfs-storageclass storageAccessMode: ReadWriteMany storageVolumeMode: Filesystem openStackRelease: "16.2"
リソース仕様に以下の値を設定します。
metadata.name
-
オーバークラウドコントロールプレーンの名前を
overcloud
に設定します。 metadata.namespace
-
director Operator namespace を
openstack
に設定します。 spec
コントロールプレーンの設定を指定します。このセクションで使用できる値の詳細は、
openstackcontrolplane
CRD のカスタムリソース定義の仕様スキーマを確認します。$ oc describe crd openstackcontrolplane
コントロールプレーンの仕様の設定が完了したら、ファイルを保存します。
コントロールプレーンを作成します。
$ oc create -f openstack-controller.yaml -n openstack
OCP が OpenStackControlPlane リソースに関連するリソースを作成するまで待機します。
director Operator は、OpenStackControlPlane リソースの一部として、リモートシェルからアクセスして RHOSP コマンドを実行できる OpenStackClient Pod も作成します。
検証
コントロールプレーンのリソースを表示します。
$ oc get openstackcontrolplane/overcloud -n openstack
OpenStackVMSet リソースを表示して、コントロールプレーンの仮想マシンセットの作成を確認します。
$ oc get openstackvmsets -n openstack
仮想マシンリソースを表示し、OpenShift Virtualization でのコントロールプレーンの仮想マシンの作成を確認します。
$ oc get virtualmachines
openstackclient
リモートシェルにアクセスできるかをテストします。$ oc rsh -n openstack openstackclient