4.2. Pacemaker 中配置的虚拟 IP 地址
每个 IPaddr2 资源设置客户端用来请求访问服务的虚拟 IP 地址。如果分配给该 IP 地址的 Controller 节点停机,则会将 IP 地址重新分配给不同的控制器。在本例中,您可以看到当前设置为侦听特定虚拟 IP 地址的每个控制器(overcloud-controller-0、-1 等)。
请注意,每个 IP 地址最初附加到特定的控制器(例如 192.168.1.150 在 overcloud-controller-0上启动)。但是,如果该控制器停机,则会将其 IP 地址重新分配给集群中的其他控制器。以下是刚刚显示的 IP 地址的描述以及它们最初分配的 IP 地址:
- 192.168.1.150 :公共 IP 地址(从 network-environment.yaml中的 ExternalAllocationPools 分配)
- 10.200.0.6: 控制器虚拟 IP 地址(dhcp_start 和 dhcp_end 范围在 undercloud.conf中设置为 10.200.0.5-10.200.0.24)
- 172.16.0.10: IP 地址,提供对控制器上的 OpenStack API 服务的访问(从 network-environment.yaml中的 InternalApiAllocationPools 分配)
- 172.16.0.11: IP 地址提供对控制器上 Redis 服务的访问(从 network-environment.yaml中的 InternalApiAllocationPools 分配)
- 172.18.0.10: 存储虚拟 IP 地址,提供对 Glance API 和 Swift 代理服务的访问(从 network-environment.yaml中的 StorageAllocationPools 分配)
- 172.19.0.10: IP 地址,提供对存储管理的访问(从 network-environment.yaml中的 StorageMgmtAlloctionPools 分配)
您可以使用 pcs 命令查看 Pacemaker 中设置的特定 IPaddr2 地址的详情。例如,要查看特定虚拟 IP 地址的超时和其他相关信息,请为 IPaddr2 资源之一输入以下内容:
如果您登录到当前分配给侦听地址 192.168.1.150 的控制器,请运行以下命令来确保其处于活动状态,并确保服务主动侦听该地址:
ip 命令显示 vlan100 接口正在侦听 192.168.1.150 和 192.168.1.151 IPv4 地址。在 netstat 命令的输出中,您可以看到侦听 192.168.1.150 接口的所有进程。除了 ntpd 进程(在端口 123 上监听监听),haproxy 进程是唯一侦听 192.168.1.150 的进程。另外,请注意,通过 192.168.1.150 (sshd、mysqld、dhclient、ntpd 等)侦听所有本地地址的进程也提供。
netstat 输出中显示的端口号可帮助您识别确切的服务 haproxy 正在侦听。您可以在 /etc/haproxy/haproxy.cfg 文件中查看这些端口号所代表的服务。下面是几个示例:
- TCP 端口 6080: nova_novncproxy
- TCP 端口 9696: neutron
- TCP 端口 8000: heat_cfn
- TCP 端口 8003: heat_cloudwatch
- TCP 端口 80: horizon
目前,在 haproxy.cfg 中,所有这三个控制器都特别侦听 192.168.1.150 服务。但是,目前只有 controller-0 在外部侦听 192.168.1.150。因此,如果 controller-0 停机,HAProxy 只需要将 192.168.1.150 重新分配给另一个控制器,并且所有服务都已在运行。