第 2 章 director 架构


Red Hat OpenStack Platform director 使用 OpenStack API 配置、部署和管理 Red Hat OpenStack Platform (RHOSP)环境。这意味着,与 director 集成需要您与这些 OpenStack API 和支持组件集成。这些 API 的优势是它们经过良好记录,上游进行了广泛的集成测试,并且了解 director 如何为具有 RHOSP 基础知识的用户更容易工作。director 会自动继承核心 OpenStack 功能增强、安全补丁和程序错误修复。

director 是一个用于安装和管理完整的 RHOSP 环境的工具组。它主要基于 OpenStack project TripleO,它是"OpenStack-On-OpenStack"的缩写。此项目使用 RHOSP 组件来安装完全可操作的 RHOSP 环境。这包括置备和控制裸机系统用作 OpenStack 节点的新 OpenStack 组件。这为安装精益可靠的完整 RHOSP 环境提供了一个简单方法。

director 使用两个主要概念:undercloud 和 overcloud。director 是组成单一系统的 OpenStack 环境(也称为 undercloud)的 OpenStack 组件的子集。undercloud 充当一个管理系统,可为工作负载创建生产级云。此生产级云是 overcloud。有关 overcloud 和 undercloud 的更多信息,请参阅 Director 安装和使用 指南。

图 2.1. undercloud 和 overcloud 的架构

director 包括可用于创建 overcloud 配置的工具、实用程序和示例模板。director 捕获配置数据、参数和网络拓扑信息,并将这些信息与 ironic、heat 和 Puppet 等组件结合使用,以编排 overcloud 安装。

2.1. 核心组件和 overcloud

下列组件是 Red Hat OpenStack Platform director 的核心,并致力于创建 overcloud:

  • OpenStack Bare Metal Provisioning 服务(ironic)
  • OpenStack 编排服务(heat)
  • Puppet
  • tripleo 和 TripleO heat 模板
  • 可组合的服务
  • 容器化服务和 Kolla
  • Ansible

2.1.1. OpenStack Bare Metal Provisioning 服务(ironic)

裸机恢复调配服务通过自助服务配置为最终用户提供专用裸机主机。director 使用裸机置备来管理 overcloud 中裸机硬件的生命周期。裸机置备使用自己的 API 定义裸机节点。

要将 OpenStack 环境置备 director,您必须使用特定的驱动程序将节点注册到裸机置备。支持的主要驱动是智能平台管理接口(IPMI),因为大多数硬件包含对 IPMI 电源管理功能的一些支持。但是,裸机置备还包含与供应商的特定厂商,如 HP iLO、Cisco UCS 或 Dell DRAC。

裸机置备控制节点的电源管理,并使用内省机制收集硬件信息或事实。director 使用内省过程中的信息将节点与各种 OpenStack 环境角色匹配,如 Controller 节点、计算节点和存储节点。例如,一个包含 10 个磁盘的发现节点通常置备为 Storage 节点。

图 2.2. 使用裸机置备服务控制节点的电源管理

如果要让 director 支持您的硬件,必须在裸机置备服务中拥有驱动程序覆盖。

2.1.2. Heat

Heat 是一种应用堆栈编排引擎。在将应用部署到云之前,您可以使用 heat 为应用程序定义元素。创建包括多个基础架构资源(如实例、网络、存储卷和弹性 IP)的堆栈模板,以及一组用于配置的参数。使用 heat 创建基于给定依赖项链的这些资源,监控资源的可用性,并在需要时扩展资源。您可以使用这些模板使应用堆栈可移植,并实现可重复的结果。

图 2.3. 在将应用部署到云之前,使用 heat 服务定义应用程序的元素

director 使用原生 OpenStack heat API 来置备和管理与 overcloud 部署关联的资源。这包括精确的详细信息,如定义每个节点角色要调配的节点数量、为每个节点配置的软件组件,以及 director 配置这些组件和节点类型的顺序。director 还使用 heat 来对部署后进行故障排除并进行更改。

以下示例是从 heat 模板的一个片段,定义 Controller 节点的参数:

NeutronExternalNetworkBridge:
    description: Name of bridge used for external network traffic.
    type: string
    default: 'br-ex'
NeutronBridgeMappings:
    description: >
      The OVS logical->physical bridge mappings to use. See the Neutron
      documentation for details. Defaults to mapping br-ex - the external
      bridge on hosts - to a physical name 'datacentre' which can be used
      to create provider networks (and we use this for the default floating
      network) - if changing this either use different post-install network
      scripts or be sure to keep 'datacentre' as a mapping network name.
    type: string
    default: "datacentre:br-ex"

Heat 会消耗 director 中包含的模板,以协助创建 overcloud,其中包括调用 ironic 以为节点提供电源。您可以使用标准 heat 工具查看中 overcloud 的资源和状态。例如,您可以使用 heat 工具将 overcloud 作为嵌套应用堆栈显示。使用 heat 模板的语法来声明和创建生产 OpenStack 云。由于每个合作伙伴集成用例都需要 heat 模板,因此您必须对合作伙伴集成有先理解和熟练程度。

2.1.3. Puppet

Puppet 是一种配置管理和实施工具,可用于描述和维护机器的最终状态。您可以在 Puppet 清单中定义此最终状态。Puppet 支持两种模型:

  • 您以清单格式在本地运行指令的独立模式
  • Puppet 从中央服务器检索其清单的服务器模式,称为 Puppet 宿主

您可以通过两种方式进行更改:

  • 将新清单上传到节点,并在本地执行它们。
  • 在 Puppet 宿主上的客户端/服务器模型中进行修改。

director 在以下区域中使用 Puppet:

  • 在 undercloud 主机上,以根据 undercloud.conf 文件中的配置来安装和配置软件包。
  • 通过将 openstack-puppet-modules 软件包注入到基础 overcloud 镜像中,Puppet 模块已准备好进行部署后配置。默认情况下,您将创建一个包含每个节点的所有 OpenStack 服务的镜像。
  • 为节点提供额外的 Puppet 清单和 heat 参数,并在 overcloud 部署后应用配置。这包括根据节点类型启用和启动配置的服务。
  • 为节点提供 Puppet hieradata。Puppet 模块和清单可从站点或特定于节点的参数自由,以保持清单一致。hieradata 充当一系列参数化值,您可以推送到 Puppet 模块并在其他区域中的引用。例如,若要在清单中引用 MySQL 密码,请将此信息保存为 hieradata,并在清单中引用。

    要查看 hieradata,请输入以下命令:

    [root@localhost ~]# grep mysql_root_password hieradata.yaml # View the data in the hieradata file
    openstack::controller::mysql_root_password: ‘redhat123'

    要引用 Puppet 清单中的 hieradata,请输入以下命令:

    [root@localhost ~]# grep mysql_root_password example.pp # Now referenced in the Puppet manifest
    mysql_root_password  => hiera(‘openstack::controller::mysql_root_password')

需要软件包安装和服务启用的合作伙伴集成服务可以创建 Puppet 模块来满足其要求。有关获取当前 OpenStack Puppet 模块和示例的更多信息,请参阅 第 4.2 节 “获取 OpenStack Puppet 模块”

2.1.4. tripleo 和 TripleO heat 模板

director 基于上游 TripleO 项目。此项目将一组 OpenStack 服务与以下目标相结合:

  • 使用镜像服务(glance)存储 overcloud 镜像。
  • 使用编排服务(heat)编配 overcloud
  • 使用裸机置备(ironic)和计算(nova)服务置备裸机

TripleO 还包括定义红帽支持的 overcloud 环境的 heat 模板集合。使用 heat,读取此模板集合并编配 overcloud 堆栈。

2.1.5. 可组合的服务

Red Hat OpenStack Platform 的每个方面被分为可组合服务。这意味着您可以定义使用不同服务组合的不同角色。例如,您可以将网络代理从默认 Controller 节点移到独立的 Networker 节点。

有关可组合服务架构的更多信息,请参阅 第 6 章 可组合的服务

2.1.6. 容器化服务和 Kolla

每个主 Red Hat OpenStack Platform (RHOSP)服务都在容器中运行。这提供了一种将每个服务保持在与主机分离的隔离命名空间内的方法。这样做有以下影响:

  • 在部署过程中,RHOSP 从红帽客户门户网站中提取并运行容器镜像。
  • podman 命令运行管理功能,如启动和停止服务。
  • 要升级容器,您必须拉取新的容器镜像,并使用更新的版本替换现有的容器。

Red Hat OpenStack Platform 使用了通过 Kolla 工具集来构建和管理的一组容器。

2.1.7. Ansible

Red Hat OpenStack Platform 使用 Ansible 来促进可组合服务升级的某些功能。这包括启动和停止服务和执行数据库升级等功能。这些升级任务在可组合的服务模板中定义。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.