第 30 章 将非 corosync 节点整成到集群中:pacemaker_remote 服务
pacemaker_remote
服务允许没有运行 corosync
的节点集成到集群中,让集群管理它们的资源,就像它们是实际的集群节点一样。
pacemaker_remote
服务提供的功能如下:
-
pacemaker_remote
服务允许您扩展到红帽支持超过 32 个节点的限制。 -
pacemaker_remote
服务允许您将虚拟环境作为集群资源来管理,还可以将虚拟环境中的单个服务作为集群资源来管理。
以下术语用于描述 pacemaker_remote
服务:
-
集群节点 - 运行高可用性服务(
pacemaker
和corosync
)的节点。 -
远程节点 - 运行
pacemaker_remote
的节点,来远程集成到集群中,而不需要corosync
集群成员资格。远程节点被配置为使用ocf:pacemaker:remote
资源代理的集群资源。 -
客户机节点 - 运行
pacemaker_remote
服务的虚拟客户机节点。虚拟客体资源由集群管理,它由集群启动,并作为远程节点集成到集群中。 -
pacemaker_remote - 一个能够在 Pacemaker 集群环境中的远程节点和 KVM 客户机节点中执行远程应用程序管理的服务守护进程。这个服务是 Pacemaker 的本地 executor 守护进程(
pacemaker-execd
)的改进版本,能够在没有运行 corosync 的节点中远程管理资源。
运行 pacemaker_remote
服务的 Pacemaker 集群具有以下特征:
-
远程节点和客户机节点运行
pacemaker_remote
服务(虚拟机端只需要很少的配置)。 -
在集群节点上运行的集群堆栈(
pacemaker
和corosync
)连接到远程节点上的pacemaker_remote
服务,允许它们集成到集群中。 -
在集群节点上运行的集群堆栈(
pacemaker
和corosync
)可启动客户机节点,并立即连接到客户机节点上的pacemaker_remote
服务,允许它们集成到集群中。
集群节点与集群节点管理的远程和客户机节点之间的关键区别在于远程和客户机节点没有运行集群堆栈。这意味着远程和虚拟机节点有以下限制:
- 它们不会在仲裁里进行
- 它们不执行隔离设备操作
- 他们没有有资格成为集群的指定控制器(DC)
-
它们本身不运行所有的
pcs
命令
另外,远程节点和客户机节点不与与集群堆栈关联的可扩展性限制绑定。
除这些限制外,远程和客户机节点的行为与集群节点在资源管理方面的行为类似,且远程和虚拟机节点本身也可被保护。集群完全能够管理和监控每个远程节点和客户机节点上的资源:您可以针对它们构建约束,将它们置于待机状态,或执行任何您使用 pcs
命令在集群节点上执行的其他操作。远程和虚拟机节点如集群节点一样显示在集群状态输出中。
30.1. pacemaker_remote
节点的主机和客户机身份验证
Pacemaker 支持两种保护 Pacemaker 节点和 pacemaker_remote
节点之间连接的方法:
- 带有预共享密钥(PSK)加密和通过 TCP 验证的传输层安全(TLS)
- 带有 SSL 证书的 TLS。使用此方法,您可以使用现有证书来保护连接
30.1.1. 带有 PSK 加密的 TLS
集群节点和 pacemaker_remote
节点间的连接使用带有预共享密钥(PSK)加密的传输层安全(TLS)进行保护,并在以下情况下默认使用端口 3121 通过 TCP 进行身份验证:
-
当使用
cluster node add-guest
命令配置客户机节点时 -
当使用
cluster node add-remote
命令配置远程节点时
这意味着集群节点和运行 pacemaker_remote
的节点必须共享相同的私钥。默认情况下,此密钥必须放在集群节点和远程节点上的 /etc/pacemaker/authkey
中。
第一次运行 pcs cluster node add-guest
命令或 pcs cluster node add-remote
命令时,它会创建 authkey
,并在集群中的所有现有节点上安装它。当您稍后创建任何类型的新节点时,现有 authkey
会被复制到新节点。
30.1.2. 配置 SSL/TLS 证书
您可以使用 X.509 (SSL/TLS)证书加密 Pacemaker 远程连接。使用此方法,您可以对 Pacemaker 远程连接重复使用现有主机证书,而不是私有共享密钥。
要配置 SSL/TLS 证书,请使用 pcs cluster node add-guest
命令或 pcs cluster node add-remote
命令创建远程连接。然后,您可以将远程连接转换为使用证书。
流程
使用
pcs cluster node add-guest
命令或pcs cluster node add-remote
命令创建远程连接。这会为客户机节点或远程节点设置authkey
。以下示例命令创建一个远程节点,并为该节点设置authkey
。[root@clusternode1 ~] # pcs cluster node add-remote remote1
[root@clusternode1 ~] # pcs cluster node add-remote remote1
Copy to Clipboard Copied! 有关远程节点的完整配置的流程,请参阅配置 Pacemaker 远程节点。配置 Pacemaker 远程节点 。
通过更新所有集群节点和 Pacemaker 远程节点上的
etc/sysconfig/pacemaker
文件中的以下变量,来将您创建的连接转换为使用 SSL/TLS 证书:-
PCMK_ca_file
- 包含可信证书颁发机构的文件的位置,用于验证客户端或服务器证书。此文件必须是 PEM 格式,并且必须对hacluster
用户或haclient
组允许读权限。 -
PCMK_cert_file
- 包含用于连接的服务器端签名证书的文件的位置。此文件必须是 PEM 格式,并且必须对hacluster
用户或haclient
组允许读权限。 -
PCMK_crl_file
(可选)- PEM 格式的证书撤销列表文件的位置。 -
PCMK_key_file
- PEM 格式的包含用于匹配PCMK_cert_file
的私钥的文件的位置。此文件必须是 PEM 格式,并且必须对hacluster
用户或haclient
组允许读权限。
-
-
(可选)从集群和远程节点中删除任何
/etc/pacemaker/authkey
文件。如果配置了证书,Pacemaker 会使用证书,但删除authkey
文件可确保 Pacemaker 不会使用 PSK 加密,如果您已忽略在节点上配置证书。