在 AWS 上安装 OpenShift

Red Hat OpenShift Service on AWS (ROSA) 提供了一个 OpenShift 实例来运行 Keycloak。

关于

本模块旨在自动化在 AWS 中通过 ROSA 工具配置 OpenShift 集群的任务,如 ROSA 安装指南 中所述。脚本位于此存储库的 provision/aws 文件夹中。

它还将安装 EFS 作为 ReadWriteMany 持久卷声明的存储提供程序,存储类为 efs-sc。有关详细信息,请参阅 AWS Elastic File Service 作为 ReadWriteMany 存储

先决条件

  1. 安装 AWS CLI

  2. 安装 OpenTofu

  3. 执行 ROSA 安装指南 中概述的步骤

    1. 在 AWS 账户中启用 ROSA 服务

    2. 下载并安装 ROSA 命令行工具

    3. 为 Elastic Load Balancer 创建服务链接角色

    4. 使用您的 Red Hat 账户令牌登录 ROSA CLI 并创建 AWS 账户角色和策略

    5. 验证您的凭据和配额

安装

安装过程在 provision/aws 文件夹中的 rosa_create_cluster.sh 脚本中自动执行,该脚本从环境变量获取参数。

它加载预先设置在 aws/ 目录中的 .env 文件中的环境变量。

该脚本通过 rosa create cluster 命令创建 OpenShift 集群,此外它还会创建所需的运算符角色和 OIDC 提供程序。安装过程完成后,它会创建一个新的管理员用户。

示例 .env 文件
CLUSTER_NAME=rosa-kcb
VERSION=4.13.8
REGION=eu-central-1
COMPUTE_MACHINE_TYPE=m5.2xlarge
MULTI_AZ=false
REPLICAS=3

如果配置中未提供 ADMIN_PASSWORD,它会从 AWS Secrets Manager 中读取它。

必填参数

VERSION

OpenShift 集群版本。

REGION

集群应运行的 AWS 区域。

COMPUTE_MACHINE_TYPE

AWS 实例类型,用于默认的 OpenShift 工作节点机器池。

REPLICAS

工作节点数量。如果选择多可用区安装,则这需要是该区域中可用可用区数量的倍数。例如,如果该区域有 3 个可用区,则副本需要设置为 3 的倍数。

使用以下命令找出该区域的可用区

aws ec2 describe-availability-zones --region region-name

可选参数

CLUSTER_NAME

集群的名称。如果未设置,将使用 $(whoami) 命令的值。

ADMIN_PASSWORD

cluster-admin 用户的密码。如果未设置,它将从 AWS Secrets Manager 秘密中获取,该秘密等于 KEYCLOAK_MASTER_PASSWORD_SECRET_NAME 参数。

KEYCLOAK_MASTER_PASSWORD_SECRET_NAME

包含 cluster-admin 用户密码的 AWS Secrets Manager 秘密的名称。默认为 keycloak-master-password

查找 URL

要了解现有集群及其 URL,请使用以下命令

rosa list clusters
rosa describe cluster -c cluster-name

重新创建管理员用户

上面的安装脚本会自动创建一个管理员用户,但如果需要重新创建用户,可以通过 rosa_recreate_admin.sh 脚本完成,提供 CLUSTER_NAME 和可选的 ADMIN_PASSWORD 参数。

按需扩展集群的节点

标准节点设置可能太小而无法运行负载测试,同时使用不同的实例类型并重建集群需要很长时间(大约 45 分钟)。为了按需扩展集群,标准设置有一个名为 scaling 的机器池,其中包含类型为 m5.2xlarge 的实例,该实例根据当前需求从 4 个实例自动扩展到 15 个实例。但是,工作节点的自动扩展非常耗时,因为节点是逐个扩展的。

要使用不同的实例类型,请使用 rosa create machinepool 创建额外的机器池

AWS Elastic File Service 作为 ReadWriteMany 存储

此设置将 EFS 安装为 ReadWriteMany 持久卷声明的存储提供程序,存储类为 efs-sc

使用脚本 rosa_efs_create.shrosa_efs_delete.sh,可以添加和删除 EFS 配置。这些旨在分别从 rosa_create_cluster.shrosa_delete_cluster.sh 中调用。

即使脚本已完成,也可能需要一段时间才能在 PVC 中的 DNS 获取挂载点的新的 IP 地址。在此期间,您可能会看到类似“无法解析服务器 file-system-id.efs.aws-region.amazonaws.com”的错误消息。

以下文档已用于设置 EFS

轮换管理员用户密码

可以通过 rosa_rotate_admin_password.sh 脚本轮换管理员用户密码。请注意,现有集群的管理员密码不会更新。可以使用 rosa_recreate_admin.sh 脚本和相应的 CLUSTER_NAME 变量来应用新密码。

卸载

卸载由 rosa_delete_cluster.sh 脚本处理。

唯一的必填参数是 CLUSTER_NAME

此外,它还会删除集群的运算符角色和 OIDC 提供程序以及管理员用户。