為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
請依照下列步驟解決問題:
-
檢閱您目前的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測試存取來接收使用者流量。