1.3. 部署后端服务
以下说明创建部署基本后端服务的 OpenStackControlPlane CR,并禁用了所有 OpenStack 服务。这将是 pod 指定的 control plane 的基础。
在后续步骤中,您将导入原始数据库,然后添加 podified OpenStack control plane 服务。
1.3.1. 先决条件 复制链接链接已复制到粘贴板!
- 您要采用的云已启动并运行,它位于 OpenStack Wallaby 版本中。
-
名为
test的虚拟机实例在源云上运行,其浮动 IP 设置为FIPenv var。您可以使用帮助程序脚本来创建该测试虚拟机。 部署
openstack-operator,但没有 部署OpenStackControlPlane。对于开发人员/CI 环境,可以通过在 install_yamls repo 中运行
make openstack来部署 openstack。在生产环境中,部署方法可能会有所不同。
有可用的 PV 可用(用于 MariaDB 和 RabbitMQ)。
对于由 install_yamls 驱动的开发人员/CI 环境,请确保已经运行了
make crc_storage。
1.3.2. 变量 复制链接链接已复制到粘贴板!
为 podified 部署设置所需的 admin 密码。这可以是原始部署的管理员密码或其它密码。
ADMIN_PASSWORD=SomePassword使用现有的 OpenStack 部署密码:
ADMIN_PASSWORD=$(cat ~/tripleo-standalone-passwords.yaml | grep ' AdminPassword:' | awk -F ': ' '{ print $2; }')设置服务密码变量以匹配原始部署。数据库密码可能会在 pod 指定的环境中有所不同,但同步服务帐户密码是一个必要的步骤。
例如,在使用 TripleO Standalone 的开发人员环境中,可以提取密码,如下所示:
AODH_PASSWORD=$(cat ~/tripleo-standalone-passwords.yaml | grep ' AodhPassword:' | awk -F ': ' '{ print $2; }') CEILOMETER_METERING_SECRET=$(cat ~/tripleo-standalone-passwords.yaml | grep ' CeilometerMeteringSecret:' | awk -F ': ' '{ print $2; }') CEILOMETER_PASSWORD=$(cat ~/tripleo-standalone-passwords.yaml | grep ' CeilometerPassword:' | awk -F ': ' '{ print $2; }') CINDER_PASSWORD=$(cat ~/tripleo-standalone-passwords.yaml | grep ' CinderPassword:' | awk -F ': ' '{ print $2; }') GLANCE_PASSWORD=$(cat ~/tripleo-standalone-passwords.yaml | grep ' GlancePassword:' | awk -F ': ' '{ print $2; }') HEAT_AUTH_ENCRYPTION_KEY=$(cat ~/tripleo-standalone-passwords.yaml | grep ' HeatAuthEncryptionKey:' | awk -F ': ' '{ print $2; }') HEAT_PASSWORD=$(cat ~/tripleo-standalone-passwords.yaml | grep ' HeatPassword:' | awk -F ': ' '{ print $2; }') IRONIC_PASSWORD=$(cat ~/tripleo-standalone-passwords.yaml | grep ' IronicPassword:' | awk -F ': ' '{ print $2; }') MANILA_PASSWORD=$(cat ~/tripleo-standalone-passwords.yaml | grep ' ManilaPassword:' | awk -F ': ' '{ print $2; }') NEUTRON_PASSWORD=$(cat ~/tripleo-standalone-passwords.yaml | grep ' NeutronPassword:' | awk -F ': ' '{ print $2; }') NOVA_PASSWORD=$(cat ~/tripleo-standalone-passwords.yaml | grep ' NovaPassword:' | awk -F ': ' '{ print $2; }') OCTAVIA_PASSWORD=$(cat ~/tripleo-standalone-passwords.yaml | grep ' OctaviaPassword:' | awk -F ': ' '{ print $2; }') PLACEMENT_PASSWORD=$(cat ~/tripleo-standalone-passwords.yaml | grep ' PlacementPassword:' | awk -F ': ' '{ print $2; }')
1.3.3. pre-checks 复制链接链接已复制到粘贴板!
1.3.4. 流程 - 后端服务部署 复制链接链接已复制到粘贴板!
确保您在使用需要部署 podified control plane 的 OpenShift 命名空间:
oc project openstack创建 OSP secret。
此过程的步骤会有所不同,但在您使用 install_yamls 的开发人员/CI 环境中:
# in install_yamls make input如果
$ADMIN_PASSWORD与osp-secret中已设置密码不同,请相应地修改osp-secret中的AdminPassword密钥:oc set data secret/osp-secret "AdminPassword=$ADMIN_PASSWORD"在
osp-secret中设置服务帐户密码,以匹配原始部署中的服务帐户密码:oc set data secret/osp-secret "AodhPassword=$AODH_PASSWORD" oc set data secret/osp-secret "CeilometerMeteringSecret=$CEILOMETER_METERING_SECRET" oc set data secret/osp-secret "CeilometerPassword=$CEILOMETER_PASSWORD" oc set data secret/osp-secret "CinderPassword=$CINDER_PASSWORD" oc set data secret/osp-secret "GlancePassword=$GLANCE_PASSWORD" oc set data secret/osp-secret "HeatAuthEncryptionKey=$HEAT_AUTH_ENCRYPTION_KEY" oc set data secret/osp-secret "HeatPassword=$HEAT_PASSWORD" oc set data secret/osp-secret "IronicPassword=$IRONIC_PASSWORD" oc set data secret/osp-secret "ManilaPassword=$MANILA_PASSWORD" oc set data secret/osp-secret "NeutronPassword=$NEUTRON_PASSWORD" oc set data secret/osp-secret "NovaPassword=$NOVA_PASSWORD" oc set data secret/osp-secret "OctaviaPassword=$OCTAVIA_PASSWORD" oc set data secret/osp-secret "PlacementPassword=$PLACEMENT_PASSWORD"部署 OpenStackControlPlane。确保仅启用 DNS、MariaDB、Memcached 和 RabbitMQ 服务。必须禁用所有其他服务。
oc apply -f - <<EOF apiVersion: core.openstack.org/v1beta1 kind: OpenStackControlPlane metadata: name: openstack spec: secret: osp-secret storageClass: local-storage cinder: enabled: false template: cinderAPI: {} cinderScheduler: {} cinderBackup: {} cinderVolumes: {} dns: template: override: service: metadata: annotations: metallb.universe.tf/address-pool: ctlplane metallb.universe.tf/allow-shared-ip: ctlplane metallb.universe.tf/loadBalancerIPs: 192.168.122.80 spec: type: LoadBalancer options: - key: server values: - 192.168.122.1 replicas: 1 glance: enabled: false template: glanceAPIs: {} horizon: enabled: false template: {} ironic: enabled: false template: ironicConductors: [] keystone: enabled: false template: {} manila: enabled: false template: manilaAPI: {} manilaScheduler: {} manilaShares: {} mariadb: enabled: false templates: {} galera: enabled: true templates: openstack: secret: osp-secret replicas: 1 storageRequest: 500M openstack-cell1: secret: osp-secret replicas: 1 storageRequest: 500M memcached: enabled: true templates: memcached: replicas: 1 neutron: enabled: false template: {} nova: enabled: false template: {} ovn: enabled: false template: ovnDBCluster: ovndbcluster-nb: dbType: NB storageRequest: 10G networkAttachment: internalapi ovndbcluster-sb: dbType: SB storageRequest: 10G networkAttachment: internalapi ovnNorthd: networkAttachment: internalapi replicas: 1 ovnController: networkAttachment: tenant placement: enabled: false template: {} rabbitmq: templates: rabbitmq: override: service: metadata: annotations: metallb.universe.tf/address-pool: internalapi metallb.universe.tf/loadBalancerIPs: 172.17.0.85 spec: type: LoadBalancer rabbitmq-cell1: override: service: metadata: annotations: metallb.universe.tf/address-pool: internalapi metallb.universe.tf/loadBalancerIPs: 172.17.0.86 spec: type: LoadBalancer ceilometer: enabled: false template: {} autoscaling: enabled: false template: {} EOF
1.3.5. post-checks 复制链接链接已复制到粘贴板!
检查 MariaDB 是否正在运行。
oc get pod openstack-galera-0 -o jsonpath='{.status.phase}{"\n"}' oc get pod openstack-cell1-galera-0 -o jsonpath='{.status.phase}{"\n"}'