模拟 Keycloak 站点故障转移

先决条件

  • 跨两个具有 Infinispan xsite 和 Aurora DB 的 ROSA 集群复制的 Keycloak 实例

  • 任务

从 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 全球加速器 的唯一名称。

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 运算符,以防止 StatefulSets 自动重新创建。相反,revive-cluster 重新启用运算符,以允许重新创建 StatefulSets。

变量 详细信息

ROSA_CLUSTER_NAME

ROSA 集群的名称。