跨站点部署与 Aurora DB、Infinispan 和 Keycloak
在两个 ROSA 集群之间部署 Keycloak,使用 Infinispan(启用跨站点功能)和共享 Aurora DB。
这些步骤将创建 Aurora DB(如果它尚不存在),并配置 AWS VPC 和 AWS 路由表,以允许 ROSA 集群访问 Aurora DB 实例。
Infinispan 和 Keycloak 都部署在同一个命名空间中。
安装步骤
-
从 https://github.com/keycloak/keycloak-benchmark/ 中检出 Git 存储库。
-
按照 AWS Route 53 作为 ROSA 的负载均衡器 中的说明创建 Route53 条目。
-
更改到文件夹
provision/rosa-cross-dc
。 -
在文件夹中的
.env
文件中提供 必需的变量。 -
运行
task
命令以在两个 OpenShift 集群上配置所有容器(请查看下面的必需变量)。
可用任务
有两个任务可用,一个用于部署,另一个用于撤销部署,如下所示
task: Available tasks for this project:
* default: Deploys Infinispan, Aurora DB and Keycloak in a Cross-Site deployment using ROSA clusters
* undeploy: Undeploy Infinispan and Keycloak in a Cross-Site deployment using ROSA clusters
undeploy 任务不会删除 Aurora DB,需要手动删除。查看目录 provision/aws/rds 中的脚本。 |
必需的变量
变量 | 详细信息 |
---|---|
AURORA_CLUSTER |
Aurora 数据库的唯一名称。 |
AURORA_REGION |
部署 Aurora DB 的 AWS 区域。 |
ROSA_CLUSTER_NAME_1 |
一个 ROSA 集群的名称。 |
ROSA_CLUSTER_NAME_2 |
另一个 ROSA 集群的名称。 |
KC_CLIENT_URL |
如 AWS Route 53 作为 ROSA 的负载均衡器 中提供的 URL |
KC_HEALTH_URL_CLUSTER_1 |
如 AWS Route 53 作为 ROSA 的负载均衡器 中提供的 URL |
KC_HEALTH_URL_CLUSTER_2 |
如 AWS Route 53 作为 ROSA 的负载均衡器 中提供的 URL |
自定义 Aurora DB、Keycloak 或 Infinispan 部署。
这些安装脚本支持原始部署脚本中定义的大多数变量。
有关 Aurora DB 变量,请查看 Aurora 安装 页面。
有关 Infinispan 部署,请查看 Infinispan 安装 页面。
有关 Keycloak 部署,请查看 Keycloak 自定义 页面。请注意,并非所有变量都会被尊重。例如,KC_ISPN_NAMESPACE
无法更改,因为它由该安装脚本自动计算。
自定义 Keycloak 源代码
默认情况下,此设置将从夜间构建部署 Keycloak。要为特定 Keycloak 源代码创建部署,可以指定 git 存储库和分支。这将替换 Keycloak 和 Keycloak 运算符的部署。要使用自定义源代码,请指定以下变量
变量 | 详细信息 |
---|---|
KC_REPOSITORY |
从 git 存储库克隆 Keycloak 源代码。例如:https://github.com/keycloak/keycloak.git 注意:SSH 存储库可能在 Github Actions 中无法正常工作,因为可能没有配置 SSH 密钥。 |
KC_BRANCH |
|
使用 AWS JDBC 驱动程序
AWS 提供了一个 JDBC 驱动程序包装器,它与我们在设置中使用的 Aurora PostgreSQL 兼容。此驱动程序在使用兼容数据库时提供了一些附加功能。此包装器在跨站点部署中默认启用。
要禁用 AWS JDBC 驱动程序,请将 KC_USE_AWS_JDBC_WRAPPER
变量设置为 false
。
要指定 AWS JDBC 驱动程序的版本,请将 KC_AWS_JDBC_WRAPPER_URL
变量设置为相应 jar 文件的 URL。
警告/已知问题
-
我们知道,有时在 ROSA 集群创建过程中,会创建一些孤立的 DHCP 选项集。我们可以使用 bash 脚本监控和清理它们,有关更多信息,请查看如何 从 ROSA 集群创建中清理孤立的 DHCP 选项。