3.4. 高可用性


高可用性对于任何生产部署都是必需的。我们的解决方案在 OpenStack、OpenShift 和 Ceph 层具有高可用性。

3.4.1. OpenStack HA

Red Hat OpenStack Platform 通过以下操作确保 OpenStack control plane 中的高可用性:

  • OpenStack Platform director 部署三个控制器节点,它们可在所有三个控制器上同时运行 OpenStack 服务和 API 的多个实例。
  • HAProxy 负载在控制器 API 端点之间平衡连接,以确保服务可用性。
  • Galera 集群保护 OpenStack 状态数据库。
  • RabbitMQ 队列在所有节点上重复,以保护消息总线。

OpenStack 的完整详情请查看 高可用性部署和使用 指南。

3.4.2. OpenShift HA

OpenShift IPI 安装程序通过默认部署三个 control plane 节点来确保 OpenShift control plane 高可用性。这样可确保 etcd 状态数据库满足规定的最低 HA 要求,并在至少三个独立节点上并置。

3.4.2.1. 节点 HA

在 OpenStack 上部署 OpenShift 时,您必须仔细考虑 OpenShift 节点的放置:

  • 为确保 control plane HA,将 control plane 节点放在不同的底层 OpenStack 计算节点上。
  • 在计算基础架构中平均分配空间 worker 节点。

3.4.2.2. Control Plane 节点放置

红帽提供了几种支持的方法来管理 OpenStack control plane 虚拟机上的 OpenShift 高可用性:

  • Nova 可用区
  • OpenStack 反关联性策略

3.4.2.3. Nova 可用区

使用 OpenStack 可用区是确保 control plane 节点正确管理 HA 的首选方法。

图 3.2. 使用 nova 可用区将 OpenShift control plane 节点放在计算主机上。

在 OpenStack 中,可用性区域的概念允许管理员对云进行逻辑分区,并为云租户提供简单的物理基础架构抽象,以方便使用。在 OpenStack 中,可用性区域非常精细。一些 OpenStack 服务(如 nova、cinder 和 neutron)都有自己的可用性区域实现。

对于 HA OpenShift control plane,openstack 云管理员必须至少提供三个可用区,并确保正确配置提供的计算资源。

OpenShift 4.12 要求 control plane 节点属于相同的 L2 网络。在三个可用区间分布 control plane 节点时,我们通常将它们连接到扩展的 L2 提供商网络。它通常涉及使用小型专用 L2 网络分段配置具有 VLAN 或 VXLAN 或 Geneve 协议的基础架构,从而能够连接此网络。区域之间的延迟必须小于 100ms。

使用计算可用区时,您应该具有名称相同的对应卷可用区。这是使用 CSI 拓扑感知时的要求,它在 OpenShift 4.12 中启用。

对于 IPI 安装,您必须在安装前手动将 control plane 可用区添加到 install-config.yaml 文件中,因为引导的安装不会提示输入它们。区域作为 YAML 阵列添加到配置文件中。

在 OpenShift 安装配置文件中设置 nova 可用区。

controlPlane:
  name: master
  platform:
    openstack:
      zones: ['AZ0', 'AZ1', 'AZ2']
  replicas: 3
Copy to Clipboard Toggle word wrap

在安装时,OpenShift 安装程序会在创建虚拟机时将每个 control plane 节点分配给不同的 AZ。

3.4.2.4. OpenStack 反关联性策略

OpenStack 支持通过关联性策略确定地放置实例。关联性规则分组到详细策略中,让管理员能够控制放置。通过使用这些策略和 OpenStack 服务器组,没有 nova 可用性区域的部署仍保持 HA。

OpenStack 安装程序上的 OpenShift 为 control-plane 和 compute 节点创建服务器组。这些服务器组随后与 soft-anti-affinity 策略一起使用,以请求实例驻留在不同的 OpenStack 计算主机上。

3.4.2.5. Worker 节点放置

将可用区用于 worker 节点的方法有两种:

  • 通过安装文件在安装时
  • 在第 2 天操作期间,使用 availabilityZone providerSpec 值手动创建 machineSets。

对于 worker 节点,安装程序有以下放置规则:

  • 安装程序会为每个给定的可用区创建一个 MachineSet。
  • 安装程序放置节点并在区域间平均分配副本。
  • 安装程序会创建一个具有反关联性的服务器组,以请求将 worker 节点放置在不同的虚拟机监控程序上。

下图显示了您可以将节点配置为可用区的方法:

图 3.3. 在三个 nova 可用区中部署的 OpenShift control plane 和 worker 节点示例。

worker 节点运行与 control-plane 节点不同的工作负载类型,允许它们利用 Ceph 支持的 root-volumes。

要做到这一点,请在 OpenShift install-config.yaml 安装的 compute 部分为 worker 明确设置 rootVolume。这将指示安装程序使用 Ceph,而不是 control plane 节点等临时磁盘。

另外,卷区应与计算区名称匹配:

在 OpenShift 安装配置文件中设置 worker 的机器池。

compute:
- name: worker
  platform:
    openstack:
      zones: ['AZ0', 'AZ1', 'AZ2']
      rootVolume:
        size: 100
        zones: ['AZ0', 'AZ1', 'AZ2']
  replicas: 3
Copy to Clipboard Toggle word wrap

3.4.2.6. 存储层 HA

默认情况下,Red Hat Ceph Storage (RHCS)部署具有高可用性。对于这个解决方案,我们使用 director 部署 RHCS。以这种方式部署 RHCS 可以自动集成和提供计算、镜像、块存储和对象存储服务的 HA 存储。

3.4.2.6.1. OpenShift control plane 实例

对于 OpenShift control-plane 节点,不建议使用 ceph 配置 OpenStack nova 服务。相反,对于 OpenShift control plane 实例,我们建议将本地存储用于 nova ephemeral 来为 etcd 提供最佳性能。

另外,etcd 在 control-plane 节点之间复制数据,不需要 ceph 提供的另一层冗余。

3.4.3. 红帽测试的解决方案:高可用性

3.4.3.1. OpenStack

为 OpenStack 解决方案实施高可用性是通过多个组件实现的:

  • Red Hat OpenStack Platform director 部署三个 OpenStack 控制器。
  • 对于存储,我们使用 超融合基础架构(HCI)部署模式,其中计算和存储服务在三个超融合节点上并置。
  • OpenStack 服务(如镜像、块存储和对象存储)部署在 Ceph 上,并提供存储层弹性。
  • OpenStack 云部署了三个计算可用域,每个区域中至少有一个计算主机。
  • OpenStack 云部署了三个卷可用区,其中名称与计算可用区相同。
  • 本地临时存储用于 OpenShift control plane 实例,HA 通过 etcd 的原生弹性功能提供。
  • Ceph 用于 OpenShift 计算实例。
重要

您必须至少有三个 OpenStack 计算主机,以确保 OpenShift control plane 可以完全分开。您还必须确保在 OpenStack 计算主机出现故障时快速替换失败的计算主机或 control plane 不会作为 HA 运行。

要为 OpenShift 应用程序实现 外部负载平衡,OpenStack 提供了 Octavia 负载均衡解决方案。Octavia 是 Red Hat OpenStack Platform 16.2 完全支持和测试的负载均衡即服务组件。

3.4.3.2. OpenShift

我们使用 nova 可用性区域和反关联性策略,为我们的 OpenShift 解决方案实施高可用性。我们将每个控制器节点放在一个单独的可用区中,以确保它们永远不会位于同一物理服务器上。

Worker 节点可以尽可能均匀地分布在同一可用区中,这样可保证在物理基础架构中平均分配。我们使用反关联性策略来请求它们位于不同的物理服务器上。worker 节点在每个故障域中使用具有不同类型的 root 卷。cinder 可用区名称与 nova 可用区名称匹配。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat