模拟 Keycloak 站点故障转移

先决条件

  • 一个 Keycloak 实例,跨两个 ROSA 集群复制,使用 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 Operators 以防止 StatefulSets 被自动重新创建。相反,revive-cluster 重新启用 Operators 以允许 StatefulSets 被重新创建。

变量 详情

ROSA_CLUSTER_NAME

ROSA 集群的名称。