为AEM TarMK冷待机配置持久化运行状况检查
本文介绍了如何在Adobe Experience Manager (AEM) TarMK冷备用环境中配置Keepalived ,以确保只有主创作实例会收到用户流量,从而防止备用节点在手动升级之前服务请求。
描述 description
在使用TarMK冷备用的AEM Author部署中, Keepalived通常用于管理将流量定向到活动节点的虚拟IP (VIP)。 默认情况下,许多配置使用简单的端口检查(如验证端口8443是否正在监听)作为VIP分配的运行状况检查。 但是,这种方法可能导致备用节点被认为健康并有资格接收流量,即使它没有提升到主节点也是如此。 这可能会导致用户或API流量被路由到备用节点,在显式提升该流量之前,该流量不受支持。
环境
- Adobe Experience Manager (AEM)作者,带有TarMK冷备用
- 一个主实例和一个备用(冷备用)创作实例
- 保留管理虚拟IP (VIP)以实现负载平衡
症状
- 观察到API或用户流量在提升到主节点之前到达备用节点
- 未记录任何特定错误消息,但通信意外地路由到备用节点
原因
仅基于端口可用性(如端口8443)的运行状况检查不会区分主角色和备用角色。 这允许待机节点符合VIP的资格并接收流量,而TarMK冷待机拓扑不支持此功能。
解决方法 resolution
请按照以下步骤解决问题:
-
检查您当前的Keepalived运行状况检查配置。 如果它只检查端口8443(例如:使用类似
/usr/bin/nc -w 3 -zv localhost 8443的命令),则确定节点角色是不够的。 -
将端口检查替换为自定义运行状况检查脚本,该脚本将验证节点是否作为主创作实例运行。 例如,可以使用标记文件或仅存在于主节点上的另一个可靠指示器。
-
自定义运行状况检查脚本示例(使用标记文件):
bash #!/bin/bash if [ -f /opt/aem/is_primary ] ; then exit 0 else exit 1 fi确保标记文件(例如:
/opt/aem/is_primary)仅存在于主节点上。 在手动升级过程中移除或创建此文件。 -
更新您的Keepalived配置以使用此自定义脚本作为VIP资格的运行状况检查。
-
在正常操作期间,请确保运行状况检查脚本仅在主节点上返回成功。 在升级之前,待机节点不应通过运行状况检查。
-
对于手动促销:
- 当需要故障转移时,停止当前主节点上的AEM。
- 通过更新备用节点的配置并创建标记文件(例如:
touch /opt/aem/is_primary),将备用节点升级为主节点。 - 在新的主节点上启动AEM。
- 运行状况检查脚本现在将成功,允许Keepalived在新主节点上广告VIP。
- 根据需要重新创建或重新配置备用节点,以保持高可用性。
- 通过在提升后测试通过VIP进行的访问,验证是否只有活动主节点播发VIP并接收用户流量。