搜索

第 6 章 在没有存储的情况下部署边缘

download PDF

如果您使用 Object Storage 服务(swift)作为中央位置镜像服务(glance)的后端,您可以在边缘站点部署没有块存储的分布式计算节点集群。因为每个架构的不同角色和网络配置集,以后无法更新没有块存储的站点,使其具有块存储。

重要

以下流程使用 lvm 作为块存储服务(cinder)的后端,在生产环境中不支持。您必须将经认证的块存储解决方案部署为块存储服务的后端。

6.1. 在没有存储的情况下部署边缘节点

您可以部署使用中央位置作为 control plane 的边缘计算节点。此流程演示了如何向部署添加新的 DCN 堆栈,并重复使用现有 heat 堆栈的配置来创建新环境文件。第一个 heat 堆栈在中央数据中心中部署 overcloud。创建额外的 heat 堆栈,将计算节点部署到远程位置。

6.1.1. 配置分布式计算节点环境文件

此流程创建一个新的 central-export.yaml 环境文件,并使用 overcloud 的 plan-environment.yaml 文件中的密码。central-export.yaml 文件包含敏感的安全数据。要提高安全性,您可以在不再需要该文件时删除该文件。

当您为 --config-download-dir 选项指定目录时,请使用 director 部署期间在 /var/lib/mistral 中创建的中央 hub Ansible 配置。不要使用您在 openstack overcloud config download 命令中使用手动生成的 Ansible 配置。手动生成的配置缺少了仅在部署操作期间创建的某些文件。

您必须将镜像上传到中央位置,然后才能将镜像复制到边缘站点;每个镜像的副本必须存在于中央位置的镜像服务(glance)中。

您必须将 RBD 存储驱动程序用于镜像、计算和块存储服务。

流程

  1. 生成 DCN 站点所需的配置文件:

    openstack overcloud export \
    --config-download-dir /var/lib/mistral/central \
    --stack central --output-file ~/dcn-common/central-export.yaml
  2. 使用适合您的环境的角色为边缘位置生成角色:

    openstack overcloud roles generate Compute -o ~/dcn0/dcn0_roles.yaml
注意

如果将 ML2/OVS 用于网络覆盖,您必须编辑您创建的角色文件,使其包含 NeutronDhcpAgentNeutronMetadataAgent 角色:

...
    - OS::TripleO::Services::MySQLClient
    - OS::TripleO::Services::NeutronBgpVpnBagpipe
+   - OS::TripleO::Services::NeutronDhcpAgent
+   - OS::TripleO::Services::NeutronMetadataAgent
    - OS::TripleO::Services::NeutronLinuxbridgeAgent
    - OS::TripleO::Services::NeutronVppAgent
    - OS::TripleO::Services::NovaAZConfig
    - OS::TripleO::Services::NovaCompute

...

如需更多信息,请参阅准备路由的供应商网络

6.1.2. 将 Compute 节点部署到 DCN 站点

此流程使用 Compute 角色将 Compute 节点部署到名为 dcn0 的可用区(AZ)中。在分布式计算节点(DC)上下文中,此角色用于没有存储的站点。

流程

  1. 查看 dcn0/overrides.yaml 中分布式计算(DCN)站点的覆盖

    parameter_defaults:
      ComputeCount: 3
      ComputeFlavor: baremetal
      ComputeSchedulerHints:
        'capabilities:node': '0-compute-%index%'
      NovaAZAttach: false
  2. ~/dcn0 目录中创建一个名为 site-name.yaml 的新文件,其内容如下:

    resource_registry:
      OS::TripleO::Services::NovaAZConfig: /usr/share/openstack-tripleo-heat-templates/deployment/nova/nova-az-config.yaml
    parameter_defaults:
      NovaComputeAvailabilityZone: dcn0
      RootStackName: dcn0
  3. 检索 DCN 站点的容器镜像:

    sudo openstack tripleo container image prepare \
    --environment-directory dcn0 \
    -r ~/dcn0/roles_data.yaml \
    -e ~/dcn-common/central-export.yaml \
    -e ~/containers-prepare-parameter.yaml \
    --output-env-file ~/dcn0/dcn0-images-env.yaml
  4. 为 dcn0 运行 deploy.sh 部署脚本:

    #!/bin/bash
    STACK=dcn0
    source ~/stackrc
    time openstack overcloud deploy \
         --stack $STACK \
         --templates /usr/share/openstack-tripleo-heat-templates/ \
         -e /usr/share/openstack-tripleo-heat-templates/environments/nova-az-config.yaml \
         -e ~/dcn-common/central-export.yaml \
         -e ~/dcn0/dcn0-images-env.yaml \
         -e ~/dcn0/site-name.yaml \
         -e ~/dcn0/overrides.yaml

    如果部署需要编辑 network_data.yaml 文件的额外边缘站点,您必须在中央位置执行堆栈更新。

  5. 在部署了边缘位置后,您必须确保在 nova API 数据库中创建 nova cell_v2 主机映射。在 undercloud 上运行以下命令:

    TRIPLEO_PLAN_NAME=central \
    ansible -i /usr/bin/tripleo-ansible-inventory \
    nova_api[0] -b -a \
    "{{ container_cli }} exec -it nova_api \
    nova-manage cell_v2 discover_hosts --by-service --verbose"

    如果扩展边缘站点,您必须再次运行该命令。

注意

您必须在 openstack overcloud deploy 命令中包含用于配置网络配置的 heat 模板。为边缘架构设计需要 spine 和 leaf 网络。如需了解更多详细信息,请参阅 Spine Leaf Networking

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.