在 AWS 上安裝 OpenShift

AWS 上的 Red Hat OpenShift 服務 (ROSA) 提供一個 OpenShift 實例來執行 Keycloak。

關於

此模組旨在自動化透過 ROSA 工具在 AWS 中佈建 OpenShift 叢集的相關任務,如 ROSA 安裝指南中所述。這些腳本位於此儲存庫中的 provision/aws 資料夾中。

它還會安裝 EFS 作為具有 efs-sc 儲存類別的 ReadWriteMany PersistentVolumeClaims 的儲存提供者。有關更多資訊,請參閱AWS 彈性檔案服務作為 ReadWriteMany 儲存

先決條件

  1. 安裝 AWS CLI

  2. 安裝 OpenTofu

  3. 執行ROSA 安裝指南中概述的步驟

    1. 在 AWS 帳戶中啟用 ROSA 服務

    2. 下載並安裝 ROSA 命令列工具

    3. 為彈性負載平衡器建立服務連結角色

    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

預設 OpenShift 工作節點機器集區的 AWS 執行個體類型

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 彈性檔案服務作為 ReadWriteMany 儲存

此設定會安裝 EFS 作為具有 efs-sc 儲存類別的 ReadWriteMany PersistentVolumeClaims 的儲存提供者。

使用腳本 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 提供者,以及管理員使用者。