第 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 管理的服务列表:
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)服务配置:
本例输出显示 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)服务正在侦听的端口号。 -
服务器
: Controller 节点名称和 IP 地址。HAProxy 可以将对这些 IP 地址发出的请求定向到服务器
输出中列出的一个 Controller 节点。 -
httpchk
:在 Controller 节点服务器上启用健康检查。 -
回退 5
:失败的健康检查数量,以确定该服务离线。 -
between 2000
:以毫秒为单位在两个连续健康检查之间间隔。 -
最后
2:用于确定该服务是否正在运行的成功健康检查数量。
有关您可以在 haproxy.cfg
文件中使用的设置的更多信息,请参阅安装 haproxy
软件包的任何节点上的 /usr/share/doc/haproxy-[VERSION]/configuration.txt
文件。