為AEM TarMK冷待命設定保留的健康狀態檢查

本文說明如何在Adobe Experience Manager (AEM) TarMK Cold Standby環境中設定Keepalived ,以確保只有主要製作執行個體會收到使用者流量,進而防止待命節點在手動升級前處理請求。

說明 description

在使用TarMK冷待命的AEM製作部署中,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