HAProxy 指南¶
Kolla Ansible 支持 Openstack 和其他服务的 Highly Available (HA) 部署。 Kolla 中的高可用性是通过 Keepalived 和 HAProxy 实现的。 Keepalived 管理虚拟 IP 地址,而 HAProxy 将流量负载均衡到服务后端。 这两个组件必须安装在同一主机上,并部署到 loadbalancer 组中的主机。
准备和部署¶
HAProxy 和 Keepalived 默认启用。 可以通过在 /etc/kolla/globals.yml 中设置以下内容来禁用它们
enable_haproxy: "no"
enable_keepalived: "no"
服务的单个外部前端¶
可以通过在 /etc/kolla/globals.yml 中添加以下内容来启用特定服务的单个外部前端(功能和服务示例)
haproxy_single_external_frontend: true
nova_external_fqdn: "nova.example.com"
neutron_external_fqdn: "neutron.example.com"
horizon_external_fqdn: "horizon.example.com"
opensearch_external_fqdn: "opensearch.example.com"
grafana_external_fqdn: "grafana.example.com"
上述功能允许在常用端口(例如 443)上暴露服务到单独的 fqdn,而不是通常的高端口。
配置¶
故障切换调优¶
当 VIP 从一个主机故障切换到另一个主机时,主机可能需要一些时间才能检测到连接已断开。 这可能导致服务停机。
为了减少内核关闭到 VIP 地址的死连接的时间,请通过在 /etc/kolla/globals.yml 中设置以下内容来修改 net.ipv4.tcp_retries2 内核选项
haproxy_host_ipv4_tcp_retries2: 6
后端权重¶
当在基础设施中使用不同的裸机作为 haproxy 后端,或者由于某种原因它们过载时,kolla-ansible 能够更改每个服务的后端权重。 权重可以是 1 到 256 之间的任何整数值。
要设置每个服务的后端权重,请按如下方式修改 inventory 文件
[control]
server1 haproxy_nova_api_weight=10
server2 haproxy_nova_api_weight=2 haproxy_keystone_internal_weight=10
server3 haproxy_keystone_admin_weight=50
HTTP/2 支持¶
默认启用具有 HTTP/2 前端支持的 HAProxy。 可以通过在 /etc/kolla/globals.yml 中设置以下内容来禁用它
haproxy_enable_http2: "no"
SSL/TLS 设置¶
有关 SSL/TLS 相关设置,请参阅 HAProxy TLS 相关设置 部分。