在 AWS 上安装 OpenShift
Red Hat OpenShift Service on AWS (ROSA) 提供了一个 OpenShift 实例来运行 Keycloak。
关于
本模块旨在自动化通过 ROSA 工具在 AWS 中配置 OpenShift 集群的任务,如 ROSA 安装指南 中所述。脚本位于本仓库的 provision/aws
文件夹中。
它还将安装 EFS 作为 ReadWriteMany PersistentVolumeClaims 的存储提供商,存储类为 efs-sc
。有关更多信息,请参见 AWS Elastic File Service 作为 ReadWriteMany 存储。
先决条件
-
执行 ROSA 安装指南 中概述的步骤
-
在 AWS 账户中启用 ROSA 服务
-
下载并安装 ROSA 命令行工具
-
为弹性负载均衡器创建服务链接角色
-
使用您的 Red Hat 账户令牌登录 ROSA CLI,并创建 AWS 账户角色和策略
-
验证您的凭据和配额
-
安装
安装过程在 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=c7g.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
重新创建管理员用户
上述安装脚本会自动创建一个管理员用户,但如果需要重新创建用户,可以通过 rosa_recreate_admin.sh
脚本完成,并提供 CLUSTER_NAME
和可选的 ADMIN_PASSWORD
参数。
按需伸缩集群节点
节点的标准设置可能太小,无法运行负载测试,同时使用不同的实例类型并重建集群需要很长时间(约 45 分钟)。为了按需伸缩集群,标准设置有一个名为 scaling
的机器池,其实例类型为 c7g.2xlarge
,该机器池根据当前需求自动伸缩,范围为 4 到 15 个实例。但是,工作节点的自动伸缩非常耗时,因为节点是逐个伸缩的。
要使用不同的实例类型,请使用 rosa create machinepool
创建其他机器池
AWS Elastic File Service 作为 ReadWriteMany 存储
此设置安装 EFS 作为 ReadWriteMany PersistentVolumeClaims 的存储提供商,存储类为 efs-sc
。
使用脚本 rosa_efs_create.sh
和 rosa_efs_delete.sh
,可以添加和删除 EFS 配置。这些脚本旨在分别从 rosa_create_cluster.sh
和 rosa_delete_cluster.sh
中调用。
即使脚本已完成,也可能需要一段时间,PVC 中的 DNS 才会获取挂载点的新 IP 地址。在此期间,您可能会看到类似“Failed to resolve server file-system-id.efs.aws-region.amazonaws.com”的错误消息。
以下文档已被用于设置 EFS