在 OpenShift 上安裝 Keycloak
在 OpenShift 上部署 Keycloak,其設定與 minikube 環境類似。
雖然 minikube 是此設定的主要目標,但這會追蹤如何在 OpenShift 環境中使用它的進度,請參閱支援的功能。
需要具有 cluster-admin
角色的 OpenShift 存取權,才能夠安裝自訂資源定義。
OpenShift 不得從網際網路存取,因為此設定會開啟節點埠和 URL,這些埠和 URL 並未受到良好的密碼和傳輸加密保護。 |
支援的功能
目前,已知下列功能在 OpenShift 上無法運作
- sqlpad
-
容器需要 root 使用者。
- 監控
-
OpenShift 僅提供 Grafana、OpenTelemetry 和 Jaeger 進行監控。尚未實作 Graphite。
Cryostat 取決於是否已安裝 Cryostat Operator,這也是 在 AWS 上安裝 OpenShift提供的安裝腳本的預設值。
在 OpenShift 上安裝 Keycloak
-
從https://github.com/keycloak/keycloak-benchmark/簽出 Git 儲存庫。
-
變更至資料夾
provision/openshift
。 -
執行
task
命令以在 OpenShift 上佈建所有容器。
若要設定部署,請參閱自訂部署以了解詳細資訊。
從 Operator Hub 安裝 Keycloak
預設情況下,會直接透過 keycloak-k8s-resources
安裝運算子。
若要使用 *Operator Lifecycle Manager* 從 *Operator Hub* 安裝運算子,請設定
KC_OPERATOR_OLM=true
此外,還可以自訂下列參數
- KC_OPERATOR_CATALOG_SOURCE_NS
-
OLM 目錄來源的命名空間。預設為
openshift-marketplace
。 - KC_OPERATOR_CATALOG_SOURCE
-
OLM 目錄來源。預設為
community-operators
。 - KC_OPERATOR_NAME
-
目錄來源中 Keycloak Operator 的名稱。預設為
keycloak-operator
。 - KC_OPERATOR_CHANNEL
-
OLM 訂閱通道。如果未設定,將使用所選運算子的預設通道。
- KC_OPERATOR_VERSION
-
Keycloak Operator 版本。如果未設定,將使用所選通道的目前版本。
請注意,用於 OLM 訂閱的實際 *叢集服務版本* 依慣例設定為
${KC_OPERATOR_NAME}.v${KC_OPERATOR_VERSION}
OpenShift 記錄
預設會啟用 OpenShift 記錄。所有應用程式和基礎結構 Pod 記錄都會儲存在 openshift-logging
命名空間中非複寫的 ElasticSearch 執行個體中。
可以在 Kibana UI 中查詢記錄,可透過 OpenShift UI 中的 **應用程式啟動器** → **記錄** 來存取

此外,當查看 Pod 的記錄時,請使用 **在 Kibana 中顯示** 連結,以搜尋此特定 Pod 的記錄

初次登入 Kibana 時,請使用時間戳記欄位 @timestamp
建立索引模式 *
,以便能夠查詢記錄。請參閱 OpenShift 文件以取得更多詳細資訊。
與其他使用者共用一個 OpenShift 叢集
下列選項對於自訂 Keycloak 部署是必要的,使其可供一個 OpenShift 叢集內的多個使用者同時使用。
KC_NAMESPACE_PREFIX
-
允許自訂命名空間名稱。產生的命名空間將為
${KC_NAMESPACE_PREFIX}keycloak
。預設情況下,命名空間前置詞設定為$(whoami)-
,但可在.env
檔案中自訂。