为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

请按照以下步骤解决问题:

  1. 检查您当前的Keepalived运行状况检查配置。 如果它只检查端口8443(例如:使用类似/usr/bin/nc -w 3 -zv localhost 8443的命令),则确定节点角色是不够的。

  2. 将端口检查替换为自定义运行状况检查脚本,该脚本将验证节点是否作为主创作实例运行。 例如,可以使用标记文件或仅存在于主节点上的另一个可靠指示器。

  3. 自定义运行状况检查脚本示例(使用标记文件):

    bash #!/bin/bash if [ -f /opt/aem/is_primary ] ; then exit 0 else exit 1 fi

    确保标记文件(例如: /opt/aem/is_primary)仅存在于主节点上。 在手动升级过程中移除或创建此文件。

  4. 更新您的Keepalived配置以使用此自定义脚本作为VIP资格的运行状况检查。

  5. 在正常操作期间,请确保运行状况检查脚本仅在主节点上返回成功。 在升级之前,待机节点不应通过运行状况检查。

  6. 对于手动促销:

    1. 当需要故障转移时,停止当前主节点上的AEM。
    2. 通过更新备用节点的配置并创建标记文件(例如: touch /opt/aem/is_primary),将备用节点升级为主节点。
    3. 在新的主节点上启动AEM。
    4. 运行状况检查脚本现在将成功,允许Keepalived在新主节点上广告VIP。
    5. 根据需要重新创建或重新配置备用节点,以保持高可用性。
    6. 通过在提升后测试通过VIP进行的访问,验证是否只有活动主节点播发VIP并接收用户流量。
recommendation-more-help
experience-cloud-kcs-help-kbarticles