7.6. OpenStackControlPlane으로 컨트롤 플레인 생성

오버클라우드 컨트롤 플레인에는 오버클라우드 기능을 관리하는 기본 Red Hat OpenStack Platform 서비스가 포함되어 있습니다. 컨트롤 플레인은 일반적으로 3개의 컨트롤러 노드로 구성되며 다른 컨트롤 플레인 기반 구성 가능 역할로 확장할 수 있습니다. 구성 가능 역할을 사용하는 경우 각 서비스는 정확히 3개의 추가 전용 노드에서 실행해야 하며 Pacemaker 쿼럼을 유지하려면 컨트롤 플레인의 총 노드 수가 홀수여야 합니다.

OpenStackControlPlane 사용자 정의 리소스는 컨트롤 플레인 기반 노드를 OpenShift Virtualization 내에서 가상 머신으로 생성합니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터가 작동하고 director Operator가 올바르게 설치되었는지 확인합니다.
  • 워크스테이션에 oc 명령줄 툴을 설치했는지 확인합니다.
  • OpenStackNetConfig 리소스를 사용하여 컨트롤 플레인 네트워크 및 추가 격리된 네트워크를 생성합니다.

절차

  1. 워크스테이션에 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 컨트롤 플레인의 이름으로 설정합니다. 즉, overcloud 입니다.
    metadata.namespace
    director Operator 네임스페이스, 즉 openstack 으로 설정합니다.
    spec

    컨트롤 플레인의 구성을 설정합니다. 이 섹션에서 사용할 수 있는 값에 대한 설명은 openstackcontrolplane CRD의 사용자 정의 리소스 정의에서 사양 스키마를 확인합니다.

    $ oc describe crd openstackcontrolplane

    컨트롤 플레인 사양 구성을 완료하면 파일을 저장합니다.

  2. 컨트롤 플레인을 생성합니다.

    $ oc create -f openstack-controller.yaml -n openstack

    OCP에서 OpenStackControlPlane 리소스와 관련된 리소스를 생성할 때까지 기다립니다.

    OpenStackControlPlane 리소스의 일부로 director Operator는 원격 쉘을 통해 액세스하고 RHOSP 명령을 실행할 수 있는 OpenStackClient Pod도 생성합니다.

검증

  1. 컨트롤 플레인의 리소스를 확인합니다.

    $ oc get openstackcontrolplane/overcloud -n openstack
  2. OpenStackVMSet 리소스를 보고 컨트롤 플레인 가상 머신 세트 생성을 확인합니다.

    $ oc get openstackvmsets -n openstack
  3. 가상 머신 리소스를 보고 OpenShift Virtualization에서 컨트롤 플레인 가상 머신 생성을 확인합니다.

    $ oc get virtualmachines
  4. openstackclient 원격 쉘에 대한 액세스를 테스트합니다.

    $ oc rsh -n openstack openstackclient