第 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 服务(虚拟机端只需要很少的配置)。
  • 在集群节点上运行的集群堆栈(pacemakercorosync)连接到远程节点上的 pacemaker_remote 服务,允许它们集成到集群中。
  • 在集群节点上运行的集群堆栈(pacemakercorosync)可启动客户机节点,并立即连接到客户机节点上的 pacemaker_remote 服务,允许它们集成到集群中。

集群节点与集群节点管理的远程和客户机节点之间的关键区别在于远程和客户机节点没有运行集群堆栈。这意味着远程和虚拟机节点有以下限制:

  • 它们不会在仲裁里进行
  • 它们不执行隔离设备操作
  • 他们没有有资格成为集群的指定控制器(DC)
  • 它们本身不运行所有的 pcs 命令

另外,远程节点和客户机节点不与与集群堆栈关联的可扩展性限制绑定。

除这些限制外,远程和客户机节点的行为与集群节点在资源管理方面的行为类似,且远程和虚拟机节点本身也可被保护。集群完全能够管理和监控每个远程和客户机节点上的资源:您可以针对它们构建限制,将其置于备用状态,或使用 pcs 命令在群集节点上执行任何其他操作。远程和虚拟机节点如集群节点一样显示在集群状态输出中。

30.1. pacemaker_remote 节点的主机和虚拟机验证

集群节点与 pacemaker_remote 之间的连接是使用传输层安全(TLS)进行安全保护,使用预共享密钥(PSK)加密和验证 TCP(默认使用端口 3121)进行验证。这意味着集群节点和运行 pacemaker_remote 的节点必须共享相同的私钥。默认情况下,此密钥必须放在集群节点和远程节点上的 /etc/pacemaker/authkey 中。

pcs cluster node add-guest 命令为客户机节点设置 authkey,而 pcs cluster node add-remote 命令则为远程节点设置 authkey