4.2. 创建 control plane
定义 OpenStackControlPlane
自定义资源(CR)来执行以下任务:
- 创建 control plane。
- 在 OpenShift (RHOSO)服务中启用 Red Hat OpenStack Services。
以下流程使用每个服务的建议配置创建一个初始 control plane。此流程帮助您快速创建操作 control plane 环境,您可以在添加所有所需自定义前排除问题并测试环境。您可以在部署的环境中添加服务自定义。有关如何在部署后自定义 control plane 的更多信息,请参阅自定义 Red Hat OpenStack Services on OpenShift 部署指南。
如需 OpenStackControlPlane
CR 示例,请参阅 OpenStackControlPlane
CR 示例。
使用以下命令查看 OpenStackControlPlane
CRD 定义和规格模式:
oc describe crd openstackcontrolplane oc explain openstackcontrolplane.spec
$ oc describe crd openstackcontrolplane
$ oc explain openstackcontrolplane.spec
流程
在工作站上创建一个名为
openstack_control_plane.yaml
的文件,以定义OpenStackControlPlane
CR:apiVersion: core.openstack.org/v1beta1 kind: OpenStackControlPlane metadata: name: openstack-control-plane namespace: openstack
apiVersion: core.openstack.org/v1beta1 kind: OpenStackControlPlane metadata: name: openstack-control-plane namespace: openstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定您创建的
Secret
CR,以便在提供对 OpenShift 服务上的 Red Hat OpenStack Services 的安全访问权限时提供对 RHOSO 服务 pod 的安全访问 :Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定您为 Red Hat OpenShift Container Platform (RHOCP)集群存储后端创建的
storageClass
:spec: secret: osp-secret storageClass: <RHOCP_storage_class>
spec: secret: osp-secret storageClass: <RHOCP_storage_class>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<RHOCP_storage_class
> 替换为您为 RHOCP 集群存储后端创建的存储类。有关存储类的详情,请参考 创建存储类。
-
将
添加以下服务配置:
注意-
以下服务示例将默认 RHOSO MetalLB
IPAddressPool
范围内的 IP 地址用于loadBalancerIPs
字段。使用您创建的 MetalLBIPAddressPool
范围内的 IP 地址更新loadBalancerIPs
字段。 - 您不能覆盖默认的公共服务端点。默认情况下,公共服务端点以 RHOCP 路由的形式公开,因为只有路由用于公共端点。
块存储服务(cinder):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
cinderBackup.replicas
:您可以在不激活cinderBackup
服务的情况下部署初始 control plane。要部署该服务,您必须为该服务设置副本数
,并为该服务配置后端。有关每个服务推荐的副本以及如何为块存储服务和备份服务配置后端的详情,请参考 配置持久性存储 中的 配置块存储备份服务。https://docs.redhat.com/en/documentation/red_hat_openstack_services_on_openshift/18.0/html/configuring_persistent_storage/assembly_configuring-the-block-storage-backup-service_block-storage-backup -
cinderVolumes.replicas
:您可以在不激活cinderVolumes
服务的情况下部署初始 control plane。要部署该服务,您必须为该服务设置副本数
,并为该服务配置后端。有关cinderVolumes
服务的建议副本以及如何为服务配置后端的详情,请参考 配置持久性存储 中的 配置卷服务。https://docs.redhat.com/en/documentation/red_hat_openstack_services_on_openshift/18.0/html/configuring_persistent_storage/assembly_cinder-configuring-the-block-storage-service_block-storage#proc_cinder-configure-volume_block-storage
-
计算服务(nova):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意默认情况下,为每个默认单元格部署一组完整的 Compute 服务(nova):
nova-api
、nova-metadata
、nova-scheduler
和nova-conductor
。默认情况下,
cell1
也启用了novncproxy
服务。data plane 的 DNS 服务:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
dns.template.options
:通过使用键值对定义每个 DNS 服务器所需的dnsmasq
实例。在本例中,定义了两个键值对,因为有两个 DNS 服务器配置为将请求转发到。 dns.template.options.key
:指定要为部署的dnsmasq
实例自定义的dnsmasq
参数。设置为以下有效值之一:-
server
-
rev-server
-
srv-host
-
txt-record
-
ptr-record
-
rebind-domain-ok
-
naptr-record
-
CNAME
-
host-record
-
caa-record
-
dns-rr
-
auth-zone
-
synth-domain
-
no-negcache
-
local
-
dns.template.options.values
: 指定dnsmasq
参数的值。您可以将通用 DNS 服务器指定为值,如1.1.1.1
或特定域的 DNS 服务器,例如/google.com/8.8.8.8
。注意此 DNS 服务
dnsmasq
为 RHOSO 数据平面上的节点提供 DNS 服务。dnsmasq
与 RHOSO DNS 服务(指定)不同,它为云租户提供 DNS 服务。
-
Identity 服务 (keystone)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 镜像服务(glance):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
glanceapis.default.replicas
:您可以在不激活镜像服务(glance)的情况下部署初始 control plane。要部署镜像服务,您必须为该服务设置副本数
,并为该服务配置后端。有关镜像服务推荐副本以及如何为服务配置后端的详情,请参考 配置持久性存储 中的 配置 镜像服务(glance)。如果没有部署镜像服务,则无法将镜像上传到云或启动实例。
-
密钥管理服务(barbican):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Networking 服务(neutron):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Object Storage 服务(swift):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OVN:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 放置服务(放置) :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Telemetry 服务(ceilometer、prometheus):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Telemetry.template.metricStorage.dataplaneNetwork
:定义用于提取 dataplanenode_exporter
端点的网络。 -
Telemetry.template.metricStorage.networkAttachments
:使用NetworkAttachmentDefinition
资源名称列出每个服务 pod 附加到的网络。您可以为您指定的每个网络附加配置服务的 NIC。如果您没有配置每个服务 pod 附加到的隔离网络,则使用默认 pod 网络。您必须创建一个与指定为dataplaneNetwork
的网络匹配的networkAttachment
,以便 Prometheus 可以从 dataplane 节点中提取数据。 -
Telemetry.template.autoscaling
:您必须存在autoscaling
字段,即使禁用了自动扩展。有关自动扩展的更多信息,请参阅实例自动扩展。
-
-
以下服务示例将默认 RHOSO MetalLB
添加以下服务配置来实现高可用性(HA):
用于所有 RHOSO 服务(
openstack
)的 MariaDB Galera 集群,以及用于 cell1 的 Compute 服务使用的 MariaDB Galera 集群(openstack-
):cell1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 包含三个 memcached 服务器的单个 memcached 集群:
memcached: templates: memcached: replicas: 3
memcached: templates: memcached: replicas: 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 用于所有 RHOSO 服务的 RabbitMQ 集群(
rabbitmq
)和 RabbitMQ 集群,供计算服务用于cell1
(rabbitmq-cell1
)使用:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您不能在同一虚拟 IP (VIP)地址上配置多个 RabbitMQ 实例,因为所有 RabbitMQ 实例都使用相同的端口。如果您需要将多个 RabbitMQ 实例公开给同一网络,则必须使用不同的 IP 地址。
创建 control plane:
oc create -f openstack_control_plane.yaml -n openstack
$ oc create -f openstack_control_plane.yaml -n openstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 等待 RHOCP 创建与
OpenStackControlPlane
CR 相关的资源。运行以下命令来检查状态:oc get openstackcontrolplane -n openstack
$ oc get openstackcontrolplane -n openstack NAME STATUS MESSAGE openstack-control-plane Unknown Setup started
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当状态为 "Setup complete" 时,会创建
OpenStackControlPlane
资源。提示将
-w
选项附加到get
命令的末尾,以跟踪部署进度。注意创建 control plane 还会创建一个
OpenStackClient
pod,您可以通过远程 shell (rsh
)访问以运行 OpenStack CLI 命令。oc rsh -n openstack openstackclient
$ oc rsh -n openstack openstackclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:通过查看
openstack
命名空间中的 pod 确认部署了 control plane:oc get pods -n openstack
$ oc get pods -n openstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当所有 pod 都已完成或运行时,会部署 control plane。
验证
打开与
OpenStackClient
pod 的远程 shell 连接:oc rsh -n openstack openstackclient
$ oc rsh -n openstack openstackclient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认内部服务端点已注册到每个服务:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 退出
OpenStackClient
pod:exit
$ exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow