第 5 章 使用 HAProxy
HAProxy 通过将流量负载平衡到运行 OpenStack 服务的控制器,为 OpenStack 提供高可用性功能。haproxy 软件包包含 haproxy 守护进程,它从相同名称的 systemd 服务启动,以及日志记录功能和示例配置。如前所述,Pacemaker 将 HAProxy 服务本身作为高可用性服务(haproxy-clone)进行管理。
在 Red Hat OpenStack Platform 8 中,director 配置多个 OpenStack 服务来利用 haproxy 服务。它通过在 /etc/haproxy/haproxy.cfg 文件中配置这些服务来实现。对于该文件中的每个服务,您可以看到:
- listen :侦听请求的服务名称
- bind :服务正在侦听的 IP 地址和 TCP 端口号
- 服务器 :提供服务的每台服务器的名称、服务器的 IP 地址和监听端口,以及其他信息。
安装 Red Hat OpenStack Platform 8 时创建的 haproxy.cfg 文件标识了 HAProxy 要管理的 19 种不同的服务。以下是如何在 haproxy.cfg 文件中配置 ceilometer 侦听服务的示例:
ceilometer 服务的 HAProxy 设置示例标识提供了 ceilometer 服务的 IP 地址和端口( 172.16.0.10 和 192.168.1.150 上的端口 8777)。172.16.0.10 地址是在 overcloud 中使用的内部 API 网络(VLAN201)上的虚拟 IP 地址,而 192.168.1.150 虚拟 IP 地址位于外部网络(VLAN100)上,可从 overcloud 外部提供对 API 网络的访问。
HAProxy 可以将为这两个 IP 地址发出的请求定向到 overcloud-controller-0 (172.16.0.13:8777)、overcloud-controller-1 (172.16.0.14:8777)或 overcloud-controller-2 (172.16.0.15:8777)。
这些服务器上设定的选项启用了健康检查(检查 ),并且在五次健康检查失败(属于 5)后,该服务被视为停止。两个连续健康检查之间的间隔设置为 2000 毫秒(或 2 秒)为 2000 毫秒。服务器在 2 个成功健康检查后被视为运行(增加 2)。
以下是由控制器节点上 HAProxy 管理的服务列表:
ceilometer | cinder | glance_api | glance_registry |
haproxy.stats | heat_api | heat_cfn | heat_cloudwatch |
Horizon | keystone_admin | keystone_public | mysql |
neutron | nova_ec2 | nova_metadata | nova_novncproxy |
5.1. HAProxy Stats 复制链接链接已复制到粘贴板!
director 还在所有 HA 部署中默认启用 HAProxy Stats。此功能允许您查看有关数据传输、连接、服务器状态以及 HAProxy Stats 页面中的类似信息。
director 还设置 IP:Port 地址,您可通过该地址访问 HAProxy Stats 页面。要找出这个地址是什么,请打开任何安装 HAProxy 的节点的 /etc/haproxy/haproxy.cfg 文件。listen haproxy.stats 部分列出了此信息。例如:
listen haproxy.stats bind 10.200.0.6:1993 mode http stats enable stats uri /
listen haproxy.stats
bind 10.200.0.6:1993
mode http
stats enable
stats uri /
在这种情况下,将您的 Web 浏览器指向 10.200.0.6:1993 以查看 HAProxy Stats 页面。