6.8. Compute 서비스 채택
Compute 서비스(nova)를 채택하기 위해 Compute 서비스가 비활성화된 기존 OpenStackControlPlane CR(사용자 정의 리소스)을 패치합니다. 패치는 RHOSP(Red Hat OpenStack Platform) 환경에서 제공하는 구성 매개변수로 서비스를 시작합니다. 다음 절차에서는 단일 셀 설정을 설명합니다.
사전 요구 사항
- 이전 채택 단계를 완료했습니다.
다음 쉘 변수를 정의했습니다. 다음 예제 값을 환경에 적합한 값으로 바꿉니다.
alias openstack="oc exec -t openstackclient -- openstack" DEFAULT_CELL_NAME="cell3" RENAMED_CELLS="cell1 cell2 $DEFAULT_CELL_NAME"-
소스 클라우드
기본셀은 새로운$DEFAULT_CELL_NAME을 사용합니다. 다중 셀 채택 시나리오에서 기본 셀은 원래 이름,DEFAULT_CELL_NAME=default를 유지하거나 사용할 수 없는 셀로 이름이 변경될 수 있습니다.DEFAULT_CELL_NAME에는 다른 기존 셀 이름을 사용하지 마십시오(기본값). 기본셀을 사용하여 소스 클라우드를 배포하고 채택 중에 이름을 변경하려면 다음 예와 같이 사용할 새 이름을 정의합니다.DEFAULT_CELL_NAME="cell1" RENAMED_CELLS="cell1"
-
소스 클라우드
프로세스
OpenStackControlPlaneCR을 패치하여 Compute 서비스를 배포합니다.참고이 절차에서는 Compute 서비스 메타데이터가 각 셀 수준에 배포되지 않고 최상위 수준에 배포되었다고 가정합니다. RHOSP 배포에 셀별 메타데이터 배포가 있는 경우 필요에 따라 다음 패치를 조정합니다.
cell0에서는 메타데이터 서비스를 실행할 수 없습니다. 로컬 셀의 메타데이터 서비스를 활성화하려면OpenStackControlPlaneCR에서 local 셀의metadataServiceTemplate필드에enabled속성을true로 설정합니다.$ rm -f celltemplates $ for CELL in $(echo $RENAMED_CELLS); do $ cat >> celltemplates << EOF ${CELL}: hasAPIAccess: true1 cellDatabaseAccount: nova-$CELL cellDatabaseInstance: openstack-$CELL2 cellMessageBusInstance: rabbitmq-$CELL3 metadataServiceTemplate: enabled: false override: service: metadata: annotations: metallb.universe.tf/address-pool: internalapi metallb.universe.tf/allow-shared-ip: internalapi metallb.universe.tf/loadBalancerIPs: 172.17.0.$(( 79 + ${CELL##*cell} )) spec: type: LoadBalancer customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true conductorServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true EOF done $ cat > oscp-patch.yaml << EOF spec: nova: enabled: true apiOverride: route: {} template: secret: osp-secret apiDatabaseAccount: nova-api apiServiceTemplate: override: service: internal: metadata: annotations: metallb.universe.tf/address-pool: internalapi metallb.universe.tf/allow-shared-ip: internalapi metallb.universe.tf/loadBalancerIPs: 172.17.0.804 spec: type: LoadBalancer customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true metadataServiceTemplate: enabled: true override: service: metadata: annotations: metallb.universe.tf/address-pool: internalapi metallb.universe.tf/allow-shared-ip: internalapi metallb.universe.tf/loadBalancerIPs: 172.17.0.80 spec: type: LoadBalancer customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true schedulerServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true cellTemplates: cell0: hasAPIAccess: true cellDatabaseAccount: nova-cell0 cellDatabaseInstance: openstack cellMessageBusInstance: rabbitmq conductorServiceTemplate: customServiceConfig: | [workarounds] disable_compute_service_check_for_ffu=true EOF $ cat celltemplates >> oscp-patch.yaml $ oc patch openstackcontrolplane openstack --type=merge --patch-file=oscp-patch.yaml- 1
- 소스 클라우드에서 셀은 항상 기본 Nova API 데이터베이스 upcall 액세스를 사용하여 구성됩니다.
hasAPIAccess를false로 설정하여 API에 대한 upcall 액세스를 비활성화할 수 있습니다. 그러나 채택 중에 API를 변경하지 마십시오. - 2
- 셀에서 사용하는 데이터베이스 인스턴스입니다. 데이터베이스 인스턴스 이름은 백엔드 서비스 배포에 설명된 대로 백엔드 서비스를 배포할 때 생성한
OpenStackControlPlaneCR에 정의된 이름과 일치해야 합니다. ??? - 3
- 셀에서 사용하는 메시지 버스 인스턴스입니다. 메시지 버스 인스턴스 이름은
OpenStackControlPlaneCR에 정의된 이름과 일치해야 합니다. - 4
- IPv6를 사용하는 경우 로드 밸런서 IP를 환경의 로드 밸런서 IP(예:
metallb.universe.tf/loadBalancerIPs: fd00:bbbb::80)로 변경합니다.
Bare Metal Provisioning 서비스(ironic)를 사용하여 Compute 서비스를 채택하는 경우 Compute 서비스 CR 패치의 각 셀에 다음 콘텐츠를 사용하여
novaComputeTemplates필드를 추가합니다. 예를 들면 다음과 같습니다.cell1: novaComputeTemplates: standalone: customServiceConfig: | [DEFAULT] host = <hostname> [workarounds] disable_compute_service_check_for_ffu=true computeDriver: ironic.IronicDriver ...-
&
lt;hostname>을 소스 클라우드에서ironicCompute 드라이버를 실행 중인 노드의 호스트 이름으로 바꿉니다.
-
&
컴퓨팅 컨트롤 플레인 서비스가 준비될 때까지 CR을 기다립니다.
$ oc wait --for condition=Ready --timeout=300s Nova/nova참고로컬 Conductor 서비스는 각 셀에 대해 시작되며 슈퍼 컨덕터는
cell0에서 실행됩니다.disable_compute_service_check_for_ffu는 외부 데이터 플레인을 가져올 때까지 모든 가져온 Compute 서비스에 대해 그리고 Compute 서비스가 빠르게 업그레이드될 때까지 필요합니다. 자세한 내용은 RHOSO 데이터 플레인에 대한 Compute 서비스 채택 및 Compute 서비스에서 빠른 업그레이드 수행을 참조하십시오.
검증
Compute 서비스 엔드 포인트가 정의되어 있고 컨트롤 플레인 FQDN을 가리키고 Nova API가 응답하는지 확인합니다.
$ openstack endpoint list | grep nova $ openstack server list- 토폴로지별 서비스 구성에서 토폴로지별 구성과 출력을 비교합니다.
슈퍼 컨덕터(superconductor)를 쿼리하여 예상되는 셀이 존재하는지 확인하고 이를 pre-adoption 값과 비교합니다.
$ for CELL in $(echo $CELLS); do set +u . ~/.source_cloud_exported_variables_$CELL set -u RCELL=$CELL [ "$CELL" = "default" ] && RCELL=$DEFAULT_CELL_NAME echo "comparing $CELL to $RCELL" echo $PULL_OPENSTACK_CONFIGURATION_NOVAMANAGE_CELL_MAPPINGS | grep -F "| $CELL |" $ oc rsh nova-cell0-conductor-0 nova-manage cell_v2 list_cells | grep -F "| $RCELL |" done각 셀에 대해 다음과 같은 변경 사항이 예상됩니다.
-
cellXnova데이터베이스 및 사용자 이름은nova_cellX가 됩니다. -
기본셀의 이름이DEFAULT_CELL_NAME으로 변경됩니다. 여러 개의 셀이 있는 경우기본셀은 원래 이름을 유지할 수 있습니다. -
RabbitMQ 전송 URL에서 더 이상
게스트를 사용하지 않습니다.
-
이때 Compute 서비스 컨트롤 플레인 서비스는 기존 Compute 서비스 워크로드를 제어하지 않습니다. 컨트롤 플레인은 데이터 채택 프로세스가 완료된 후에만 데이터 플레인을 관리합니다. 자세한 내용은 RHOSO 데이터 플레인에 대한 Compute 서비스 채택을 참조하십시오.
외부 컴퓨팅 서비스를 RHOSO 데이터 플레인으로 가져오려면 먼저 업그레이드해야 합니다. 자세한 내용은 RHOSO 데이터 플레인에 대한 Compute 서비스 채택 및 Compute 서비스에서 빠른 업그레이드 수행을 참조하십시오.