7.3. 创建自定义 nova 服务
要创建 Compute 节点集合所需的自定义服务,请完成以下任务:
-
创建
ConfigMap自定义资源(CR)来配置节点。 - 为运行 playbook 的节点集合创建自定义服务。
-
在自定义服务中包含
ConfigMapCR。
您必须为每个可用区(AZ)创建一个唯一的 ConfigMap 和自定义 Compute 服务。
为每个 AZ 重复此步骤。
流程
-
在工作站上创建一个名为
nova-extra-config-az1.yaml的文件,为 AZ 定义 Compute 节点设置的ConfigMapCR。 定义一个新的配置文件,以应用到 AZ 为 AZ 设置的节点中的 Compute 节点,为本地 AZ 添加镜像服务(glance)端点,并将
cross_az_attach字段设置为false。如果使用 Red Hat Ceph Storage,请包含 RBD 选项:
示例:
apiVersion: v1 kind: ConfigMap metadata: name: nova-extra-config-az1 data: 03-ceph-nova.conf: [libvirt] images_type = rbd images_rbd_pool = vms images_rbd_ceph_conf = /etc/ceph/az1.conf images_rbd_glance_store_name = az1 images_rbd_glance_copy_poll_interval = 15 images_rbd_glance_copy_timeout = 600 rbd_user = openstack rbd_secret_uuid=$FSID hw_disk_discard = unmap [glance] endpoint_override = https://glance-az1-internal.openstack.svc:9292 valid_interfaces = internal [cinder] cross_az_attach = False catalog_info = volumev3:cinderv3:internalURL如果您使用带有多路径的第三方存储设备,请将
volume_use_multipath设置为 True :示例:
apiVersion: v1 kind: ConfigMap metadata: name: nova-extra-config-az1 data: 25-nova-extra.conf: | [libvirt] volume_use_multipath = True [glance] endpoint_override = https://glance-az1-internal.openstack.svc:9292 valid_interfaces = internal [cinder] cross_az_attach = False catalog_info = volumev3:cinderv3:internalURL-
data.<filename> : 文件名必须遵循 swig-<name>-nova.conf的命名约定。文件由 Compute 服务按字母顺序评估。以01开头的文件名将在以02开头的文件名之前由 Compute 服务评估。当同一配置选项在多个文件中发生时,配置选项将设置为最后读取的值。 -
rbd_secret_uuid:$FSID值应包含实际的FSID,如 配置持久性存储 中的 获取 Red Hat Ceph Storage File System Identifier 中所述。FSID本身不需要被视为 secret。
部署服务时,它会将配置添加到服务容器中的
etc/<service>/<service>.conf.d/目录中。例如,对于计算功能,配置文件将添加到nova_compute容器中的etc/nova/nova.conf.d/中。+ 有关创建
ConfigMap对象的更多信息,请参阅 RHOCP 节点 指南中的 创建和使用配置映射。创建
ConfigMapCR:$ oc create -f nova-extra-config-az1.yaml在工作站上创建一个名为
nova-custom-az1.yaml的文件,为 AZ 为 Compute 节点定义OpenStackDataPlaneServiceCR:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneService metadata: name: nova-custom-az1 spec: addCertMounts: false caCerts: combined-ca-bundle edpmServiceType: nova playbook: osp.edpm.nova tlsCerts: default: contents: - dnsnames - ips edpmRoleServiceName: nova issuer: osp-rootca-issuer-internal networks: - ctlplane将
ConfigMapCR 添加到自定义服务中:dataSources: - configMapRef: name: ceph-nova-az1 - secretRef: name: nova-migration-ssh-key为运行此服务的节点集的单元指定
SecretCR:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneService metadata: name: <nodeset>-service spec: ... dataSources: - configMapRef: name: feature-configmap - secretRef: name: nova-migration-ssh-key - secretRef: name: nova-cell1-compute-config创建自定义服务:
$ oc create -f nova-custom-az1.yaml