7.5. 声明自定义特征和资源类
作为管理员,您可以通过在 YAML 文件中定义自定义资源清单 provider.yaml 来声明在 data plane 节点上提供哪些自定义物理功能和可消耗资源。
您可以通过定义自定义特征来声明物理主机功能的可用性,如 CUSTOM_DIESEL_BACKUP_POWER、CUSTOM_FIPS_COMPLIANT 和 CUSTOM_HPC_OPTIMIZED。您还可以通过定义资源类(如 CUSTOM_DISK_IOPS )和 CUSTOM_POWER_WATTS 来声明可消耗资源的可用性。
先决条件
-
您已在工作站上安装了
oc和podman命令行工具。 -
以具有
cluster-admin权限的用户身份登录到可访问 RHOSO 控制平面的工作站。
流程
-
在
/home/stack/templates/中创建一个名为provider.yaml的文件。 要配置资源供应商,请在
provider.yaml文件中添加以下配置:meta: schema_version: '1.0' providers: - identification: uuid: <node_uuid>-
将
<node_uuid> 替换为节点的 UUID,例如'5213b75d-9260-42a6-b236-f39b0fd10561'。或者,您可以使用name属性来识别资源提供程序:name: 'EXAMPLE_RESOURCE_PROVIDER'。
-
将
要为资源供应商配置可用的自定义资源类,请在
provider.yaml文件中添加以下配置:meta: schema_version: '1.0' providers: - identification: uuid: <node_uuid> inventories: additional: - CUSTOM_EXAMPLE_RESOURCE_CLASS: total: <total_available> reserved: <reserved> min_unit: <min_unit> max_unit: <max_unit> step_size: <step_size> allocation_ratio: <allocation_ratio>-
将
CUSTOM_EXAMPLE_RESOURCE_CLASS替换为资源类的名称。自定义资源类必须以前缀 CUSTOM_ 开头,并且仅包含字母 A 到 Z、数字 0 到 9,以及下划线 "_" 字符。 -
将
<total_available> 替换为此资源提供商可用的CUSTOM_EXAMPLE_RESOURCE_CLASS的数量。 -
将
<reserved> 替换为此资源供应商的可用CUSTOM_EXAMPLE_RESOURCE_CLASS的数量。 -
将
<min_unit> 替换为单个实例可消耗的最少资源单元。 -
将
<max_unit> 替换为单个实例可以消耗的资源的最大单元。 -
将
<step_size> 替换为此资源提供商可用的CUSTOM_EXAMPLE_RESOURCE_CLASS的数量。 -
将
<allocation_ratio> 替换为设置分配比率的值。如果 allocation_ratio 设为 1.0,则不允许过度分配。但是,如果 allocation_ration 大于 1.0,则可用资源总数超过了物理资源。
-
将
要为资源供应商配置可用的特征,请在
provider.yaml文件中添加以下配置:meta: schema_version: '1.0' providers: - identification: uuid: <node_uuid> inventories: additional: ... traits: additional: - 'CUSTOM_EXAMPLE_TRAIT'将
CUSTOM_EXAMPLE_TRAIT替换为特征的名称。自定义特征必须以前缀 CUSTOM_ 开头,并且仅包含字母 A 到 Z、数字 0 到 9,以及下划线 "_" 字符。provider.yaml文件示例 声明了一个自定义资源类,并为资源供应商声明一个自定义特征。meta: schema_version: 1.0 providers: - identification: uuid: $COMPUTE_NODE inventories: additional: CUSTOM_LLC: # Describing LLC on this compute node # max_unit indicates maximum size of single LLC # total indicates sum of sizes of all LLC total: 221 reserved: 22 min_unit: 13 max_unit: 114 step_size: 15 allocation_ratio: 1.06 traits: additional: # Describing that this compute node enables support for # P-state control - CUSTOM_P_STATE_ENABLED
-
保存并关闭
provider.yaml文件。 创建一个 ConfigMap CR,将 Compute 节点配置为使用 provider.yaml 文件来声明自定义特征和资源,并将它保存到工作站上名为
compute-provider.yaml的文件中:apiVersion: v1 kind: ConfigMap metadata: name: compute-provider namespace: openstack data: provider.yaml: |有关创建
ConfigMap对象的更多信息,请参阅创建和使用配置映射。创建
ConfigMap对象:$ oc create -f compute-provider.yaml创建一个新的自定义服务
compute-provider,其中包含compute-providerConfigMap对象,并将它保存到工作站上名为compute-provider-service.yaml的文件中:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneService metadata: name: compute-provider namespace: openstack spec: label: dataplane-deployment-compute playbook: osp.edpm.nova secrets: [] dataSources: - secretRef: name: nova-cell1-compute-config - secretRef: name: nova-migration-ssh-key - configMapRef: name: compute-provider - configMapRef: name: nova-extra-config optional: true创建
compute-provider服务:$ oc apply -f compute-provider-service.yaml创建一个新的
OpenStackDataPlaneNodeSetCR,用于定义您要使用 provider.yaml 文件用于自定义特征和资源声明的节点,并将它保存到工作站上名为 compute-provider.yaml 的文件中:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneNodeSet metadata: name: compute-provider有关如何创建
OpenStackDataPlaneNodeSetCR 的详情,请参考创建一组 data plane 节点。修改
compute-providerOpenStackDataPlaneNodeSet CR,以使用compute-provider-service服务而不是默认的 Compute 服务:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneNodeSet metadata: name: compute-provider spec: services: - download-cache - configure-network - validate-network - install-os - configure-os - run-os - ovn - libvirt - compute-provider-service #replaced the nova service - telemetry-
保存 compute-provider.yaml
OpenStackDataPlaneNodeSetCR 定义文件。 创建 data plane 资源:
$ oc create -f compute-provider.yaml验证 data plane 资源是否已创建:
$ oc get openstackdataplanenodeset NAME STATUS MESSAGE compute-provider False Deployment not started验证是否已创建服务:
$ oc get openstackdataplaneservice NAME AGE download-cache 6d7h configure-network 6d7h configure-os 6d6h install-os 6d6h run-os 6d6h validate-network 6d6h ovn 6d6h libvirt 6d6h compute-provider 6d6h telemetry 6d6h创建新的
OpenStackDataPlaneDeploymentCR,以在 data plane 节点上配置服务并部署节点,并将它保存到工作站上名为 compute-provider_deploy.yaml 的文件中:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: compute-provider有关如何创建 OpenStackDataPlaneDeployment CR 的详情,请参考部署数据平面。
指定
nodeSets以包括您要部署的所有 OpenStackDataPlaneNodeSet CR:apiVersion: dataplane.openstack.org/v1beta1 kind: OpenStackDataPlaneDeployment metadata: name: compute-provider spec: nodeSets: - openstack-edpm - compute-provider - ... - <nodeSet_name>-
将
<nodeSet_name> 替换为您要包含在 data plane 部署中的 OpenStackDataPlaneNodeSet CR 的名称。
-
将
- 保存 compute-provider_deploy.yaml 部署文件。
部署数据平面:
$ oc create -f compute-provider_deploy.yaml验证 data plane 是否已部署:
$ oc get openstackdataplanedeployment NAME STATUS MESSAGE compute-provider True Deployment Completed $ oc get openstackdataplanenodeset NAME STATUS MESSAGE openstack-edpm True Deployed compute-provider True Deployed确保 control plane 上可以看到部署的 Compute 节点:
$ oc rsh nova-cell0-conductor-0 nova-manage cell_v2 discover_hosts --verbose访问 openstackclient 的远程 shell,并验证部署的 Compute 节点是否在 control plane 上可见:
$ oc rsh -n openstack openstackclient $ openstack hypervisor list