模擬 Keycloak 站點故障轉移

先決條件

  • 一個跨兩個 ROSA 叢集複製的 Keycloak 實例,具有 Infinispan xsite 和 Aurora DB

  • Task

從 CLI 執行故障測試

安裝步驟

  1. https://github.com/keycloak/keycloak-benchmark/ 檢出 Git 儲存庫。

  2. 變更到 provision/rosa-cross-dc 資料夾。

  3. 在資料夾中的 .env 檔案中,提供所需任務的變數。

腦裂

提供兩個任務來進行腦裂故障轉移,一個用於導致腦裂,另一個用於從中恢復

* split-heal:                             Heal a split-brain simulation by reenabling GossipRouters and reseting the global accelerator endpoints
* split-trigger:                          Disables Infinispan GossipRouters on each cluster to simulate a split-brain scenario
變數 詳細資訊

ACCELERATOR_NAME

部署使用的 AWS Global Accelerator 的唯一名稱。

ROSA_CLUSTER_NAME_1

一個 ROSA 叢集的名稱。

ROSA_CLUSTER_NAME_2

另一個 ROSA 叢集的名稱。

叢集故障

提供兩個任務來模擬叢集故障。一個用於積極刪除 Keycloak 和 Infinispan StatefulSets,另一個用於重新建立它們

* kill-cluster:                           Delete the Keycloak and Infinispan StatefulSets in the specified cluster
* revive-cluster:                         Recreate the Keycloak and Infinispan StatefulSets in the specified cluster

kill-cluster 任務會停用 Keycloak 和 Infinispan Operator,以防止 StatefulSets 自動重新建立。相反地,revive-cluster 會重新啟用 Operator,以允許重新建立 StatefulSets。

變數 詳細資訊

ROSA_CLUSTER_NAME

ROSA 叢集的名稱。