搜索

7.2. 使用负载均衡的服务的配置参数

download PDF

对于使用负载平衡的 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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.