7.2. 使用负载均衡的服务的配置参数
对于使用负载平衡的 overcloud 中的每个服务,请使用以下示例作为配置外部负载均衡器的指南。根据您的环境调整参数值,并为您要负载平衡的每个服务复制 部分。
大多数服务使用默认的健康检查配置:
- 两个连续健康检查之间的间隔设置为 2000 毫秒,或 2 秒。
- 两个成功健康检查后,服务器将被视为可操作。
- 在五个健康检查失败后,该服务被视为离线。
每个服务都指示该服务的 Other information 部分中的默认健康检查或附加选项。
aodh
端口号: 8042
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen aodh bind 172.16.20.250:8042 bind 172.16.23.250:8042 server overcloud-controller-0 172.16.20.150:8042 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8042 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8042 check fall 5 inter 2000 rise 2
ceilometer
端口号: 8777
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen ceilometer bind 172.16.20.250:8777 bind 172.16.23.250:8777 server overcloud-controller-0 172.16.20.150:8777 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8777 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8777 check fall 5 inter 2000 rise 2
cinder
端口号: 8776
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen cinder bind 172.16.20.250:8776 bind 172.16.23.250:8776 server overcloud-controller-0 172.16.20.150:8776 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8776 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8776 check fall 5 inter 2000 rise 2
glance_api
端口号: 9292
绑定到: storage, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的存储
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen glance_api bind 172.16.23.250:9292 bind 172.16.21.250:9292 server overcloud-controller-0 172.16.21.150:9292 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.21.151:9292 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.21.152:9292 check fall 5 inter 2000 rise 2
glance_registry
端口号: 9191
绑定到: internal_api
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen glance_registry bind 172.16.20.250:9191 server overcloud-controller-0 172.16.20.150:9191 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:9191 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:9191 check fall 5 inter 2000 rise 2
gnocchi
端口号: 8041
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen gnocchi bind 172.16.20.250:8041 bind 172.16.23.250:8041 server overcloud-controller-0 172.16.20.150:8041 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8041 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8041 check fall 5 inter 2000 rise 2
heat_api
端口号: 8004
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
- 此服务使用 HTTP 模式而不是默认的 TCP 模式。
HAProxy 示例:
listen heat_api bind 172.16.20.250:8004 bind 172.16.23.250:8004 mode http server overcloud-controller-0 172.16.20.150:8004 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8004 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8004 check fall 5 inter 2000 rise 2
heat_cfn
端口号: 8000
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen heat_cfn bind 172.16.20.250:8000 bind 172.16.23.250:8000 server overcloud-controller-0 172.16.20.150:8000 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.152:8000 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.151:8000 check fall 5 inter 2000 rise 2
heat_cloudwatch
端口号: 8003
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen heat_cloudwatch bind 172.16.20.250:8003 bind 172.16.23.250:8003 server overcloud-controller-0 172.16.20.150:8003 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8003 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8003 check fall 5 inter 2000 rise 2
horizon
端口号: 80
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
- 此服务使用 HTTP 模式而不是默认的 TCP 模式。
- 此服务使用基于 Cookie 的持久性来与 UI 交互。
HAProxy 示例:
listen horizon bind 172.16.20.250:80 bind 172.16.23.250:80 mode http cookie SERVERID insert indirect nocache server overcloud-controller-0 172.16.20.150:80 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:80 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:80 check fall 5 inter 2000 rise 2
keystone_admin
端口号: 35357
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen keystone_admin bind 172.16.23.250:35357 bind 172.16.20.250:35357 server overcloud-controller-0 172.16.20.150:35357 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:35357 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:35357 check fall 5 inter 2000 rise 2
keystone_admin_ssh
端口号: 22
绑定到: internal_api
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen keystone_admin_ssh bind 172.16.20.250:22 server overcloud-controller-0 172.16.20.150:22 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:22 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:22 check fall 5 inter 2000 rise 2
keystone_public
端口号: 5000
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen keystone_public bind 172.16.20.250:5000 bind 172.16.23.250:5000 server overcloud-controller-0 172.16.20.150:5000 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:5000 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:5000 check fall 5 inter 2000 rise 2
mysql
端口号: 3306
绑定到: internal_api
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。但是,健康检查使用端口 9200。
- 此服务正一个时间点上只会负载均衡一台服务器。
- 只有在所有其他非备份服务器都不可用时,每个服务器才会在负载平衡中使用。
- 如果服务器离线,则所有连接都会立即终止。
- 您必须在两端启用 TCP keepalive 数据包发送。
- 您必须启用 HTTP 协议来检查服务器健康状况。
- 您可以配置粘性表来存储 IP 地址,以帮助保持持久性。
mysql 服务使用 Galera 提供高度可用的数据库集群。Galera 支持主动-主动配置,但为了避免锁定竞争,您必须使用负载均衡器强制执行的主动 - 被动配置。
HAProxy 示例:
listen mysql bind 172.16.20.250:3306 option tcpka option httpchk stick on dst stick-table type ip size 1000 timeout client 0 timeout server 0 server overcloud-controller-0 172.16.20.150:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2 server overcloud-controller-1 172.16.20.151:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2 server overcloud-controller-2 172.16.20.152:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2
neutron
端口号: 9696
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen neutron bind 172.16.20.250:9696 bind 172.16.23.250:9696 server overcloud-controller-0 172.16.20.150:9696 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:9696 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:9696 check fall 5 inter 2000 rise 2
nova_ec2
端口号: 8773
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen nova_ec2 bind 172.16.20.250:8773 bind 172.16.23.250:8773 server overcloud-controller-0 172.16.20.150:8773 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8773 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8773 check fall 5 inter 2000 rise 2
nova_metadata
端口号: 8775
绑定到: internal_api
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen nova_metadata bind 172.16.20.250:8775 server overcloud-controller-0 172.16.20.150:8775 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8775 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8775 check fall 5 inter 2000 rise 2
nova_novncproxy
端口号: 6080
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
- 默认负载平衡方法是 round-robin。但是,对于此服务,请使用 源 方法。这个方法对源 IP 地址进行哈希处理,并使用正在运行的服务器的总权重来划分它。这个方法还指定接收请求的服务器,并确保相同的客户端 IP 地址始终到达同一服务器,除非服务器停机或启动。如果由于运行服务器数量的变化导致哈希结果发生变化,负载均衡器会将客户端重定向到不同的服务器。
HAProxy 示例:
listen nova_novncproxy bind 172.16.20.250:6080 bind 172.16.23.250:6080 balance source server overcloud-controller-0 172.16.20.150:6080 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:6080 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:6080 check fall 5 inter 2000 rise 2
nova_osapi
端口号: 8774
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen nova_osapi bind 172.16.20.250:8774 bind 172.16.23.250:8774 server overcloud-controller-0 172.16.20.150:8774 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8774 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8774 check fall 5 inter 2000 rise 2
nova_placement
端口号: 8778
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen nova_placement bind 172.16.20.250:8778 bind 172.16.23.250:8778 server overcloud-controller-0 172.16.20.150:8778 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8778 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8778 check fall 5 inter 2000 rise 2
panko
端口号: 8779
绑定到: internal_api, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen panko bind 172.16.20.250:8779 bind 172.16.23.250:8779 server overcloud-controller-0 172.16.20.150:8779 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8779 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8779 check fall 5 inter 2000 rise 2
redis
端口号: 6379
绑定到: internal_api (redis 服务 IP)
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的 internal_api
其他信息:
- 每个目标服务器都使用默认健康检查。
-
使用
tcp-check
send/expect 序列执行健康检查。要发送的字符串是info\ replication\r\n
,响应是role:master
。 -
Redis 服务使用密码进行身份验证。例如,HAProxy 配置使用带有 AUTH 方法和 Redis 管理密码的
tcp-check
。director 通常会生成一个随机密码,但您可以定义自定义 Redis 密码。 -
默认平衡方法是
round-robin
。但是,对于此服务,请使用第一个
方法。这样可确保第一个具有可用连接插槽的服务器接收连接。
HAProxy 示例:
listen redis bind 172.16.20.249:6379 transparent balance first option tcp-check tcp-check send AUTH\ p@55w0rd!\r\n tcp-check send PING\r\n tcp-check expect string +PONG tcp-check send info\ replication\r\n tcp-check expect string role:master tcp-check send QUIT\r\n tcp-check expect string +OK server overcloud-controller-0 172.16.20.150:6379 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:6379 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:6379 check fall 5 inter 2000 rise 2
swift_proxy_server
端口号: 8080
绑定到: storage, external
目标网络或服务器: overcloud-controller-0、overcloud-controller-1 和 overcloud-controller-2 上的存储
其他信息:
- 每个目标服务器都使用默认健康检查。
HAProxy 示例:
listen swift_proxy_server bind 172.16.23.250:8080 bind 172.16.21.250:8080 server overcloud-controller-0 172.16.21.150:8080 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.21.151:8080 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.21.152:8080 check fall 5 inter 2000 rise 2