第 5 章 使用 HAProxy 负载均衡流量


HAProxy 服务提供高可用性集群中 Controller 节点的流量负载均衡,以及日志记录和示例配置。haproxy 软件包包含 haproxy 守护进程,对应于同一名称的 systemd 服务。Pacemaker 将 HAProxy 服务作为一个名为 haproxy-bundle 的高可用服务进行管理。

5.1. HAProxy 的工作原理

director 可以配置大多数 Red Hat OpenStack Platform 服务以使用 HAProxy 服务。director 在 /var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg 文件中配置这些服务,该文件指示 HAProxy 在每个 overcloud 节点上的专用容器中运行。

下表显示了 HAProxy 管理的服务列表:

表 5.1. 由 HAProxy 管理的服务

aodh

cinder

glance_api

gnocchi

haproxy.stats

heat_api

heat_cfn

horizon

keystone_admin

keystone_public

mysql

neutron

nova_metadata

nova_novncproxy

nova_osapi

nova_placement

对于 haproxy.cfg 文件中的每个服务,您可以查看以下属性:

  • listen: 正在侦听请求的服务名称。
  • bind :服务正在侦听的 IP 地址和 TCP 端口号。
  • server:使用 HAProxy、IP 地址和侦听端口的每个 Controller 节点服务器的名称,以及服务器的附加信息。

以下示例显示了 haproxy.cfg 文件中的 OpenStack Block Storage (cinder)服务配置:

listen cinder
  bind 172.16.0.10:8776
  bind 192.168.1.150:8776
  mode http
  http-request set-header X-Forwarded-Proto https if { ssl_fc }
  http-request set-header X-Forwarded-Proto http if !{ ssl_fc }
  option httpchk
  server overcloud-controller-0 172.16.0.13:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-1 172.16.0.14:8777 check fall 5 inter 2000 rise 2
  server overcloud-controller-2 172.16.0.15:8777 check fall 5 inter 2000 rise 2

本例输出显示了有关 OpenStack Block Storage (cinder)服务的以下信息:

  • 172.16.0.10:8776: 在 overcloud 中使用的 Internal API 网络 (VLAN201) 的虚拟 IP 地址和端口。
  • 192.168.1.150:8776 :外部网络(VLAN100)上的虚拟 IP 地址和端口,可从 overcloud 外部访问 API 网络。
  • 8776 : OpenStack Block Storage (cinder)服务侦听的端口。
  • Server :Controller 节点名称和 IP 地址。HAProxy 可以将对这些 IP 地址的请求定向到 服务器 输出中列出的其中一个 Controller 节点。
  • httpchk :启用 Controller 节点服务器上的健康检查。
  • 回退到 5 :用于确定服务离线的健康检查数量。
  • inter 2000 : 以毫秒为单位,两个连续健康检查之间的间隔。
  • 增长 2:用于确定服务是否正在运行的健康检查数量。

有关您可以在 haproxy.cfg 文件中使用的设置的更多信息,请参阅安装 haproxy 软件包的任何节点上的 /usr/share/doc/haproxy-[VERSION]/configuration.txt 文件。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.