模擬 Keycloak 站點故障轉移
先決條件
-
一個跨兩個 Openshift 叢集複製的 Keycloak 實例,具有 Infinispan xsite 和 Aurora DB
-
Realm、使用者和客戶端存在,並具有基準 CLI 命令所需的值
從 CLI 執行故障測試
參數
故障轉移腳本需要設定以下環境變數:FAILOVER_MODE
和 DOMAIN
。
FAILOVER_MODE
決定了腳本啟動的故障轉移類型,並且可以是以下值之一
FAILOVER_MODE | 描述 |
---|---|
|
刪除 Keycloak aws-health-route,以便 Route53 最終將執行故障轉移。 |
|
刪除所有 Keycloak 路由,以便 Route53 最終將執行故障轉移,但對舊 DNS IP 位址的請求將會失敗。Keycloak Operator 會縮減到 0 個 Pod,以防止重新建立 Keycloak Ingress。 |
|
刪除所有 Keycloak 和 Infinispan Pod,不寬限期,並移除相關的 StatefulSet。兩個 Operator 都會縮減,以防止重新建立已移除的資源。 |
|
刪除 Infinispan Gossip Router Pod,不寬限期,並移除相關的 Deployment。Infinispan Operator 會縮減,以防止重新建立已移除的資源。 |
請參閱下文,了解其他可設定的環境變數的描述。
DOMAIN
-
必填。託管
client.
、primary.
和backup.
子網域的 Route53 網域。 FAILOVER_DELAY
-
選填。啟動叢集故障轉移前要等待的延遲時間(秒)。預設為 60 秒。
執行
使用從 CLI 執行效能基準測試指南來模擬針對特定 Kubernetes 環境的負載。
平行執行以下命令以啟動故障轉移
FAILOVER_MODE="KEYCLOAK_ROUTES" DOMAIN=... ./kc-failover.sh
為了讓 kc-failover.sh 腳本準確記錄 Route53 故障轉移所花費的時間,建議在與 Keycloak 基準測試情境相同的環境中執行該腳本。 |
在故障轉移測試後還原叢集
執行故障轉移基準測試後,可以透過設定 RECOVERY_MODE
環境變數來執行腳本,以還原原始叢集狀態。RECOVERY_MODE
的值決定用於重新建立 aws-health-route
Route 的子網域。