在 OpenShift 上安装 Keycloak
在 OpenShift 上部署 Keycloak,使用类似于 minikube 环境的设置。
虽然 minikube 是此设置的主要目标,但这会跟踪如何在 OpenShift 环境中使用它的进度,请参阅支持的功能。
需要具有 cluster-admin
角色的 OpenShift 访问权限才能安装自定义资源定义。
OpenShift 必须无法从 Internet 访问,因为此设置会打开节点端口和 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
默认情况下,operator 直接通过 keycloak-k8s-resources
安装。
要使用 Operator Lifecycle Manager 从 Operator Hub 安装 operator,请设置
KC_OPERATOR_OLM=true
此外,还可以自定义以下参数
- KC_OPERATOR_CATALOG_SOURCE_NS
-
OLM catalog source 的命名空间。默认为
openshift-marketplace
。 - KC_OPERATOR_CATALOG_SOURCE
-
OLM catalog source。默认为
community-operators
。 - KC_OPERATOR_NAME
-
catalog source 中 Keycloak Operator 的名称。默认为
keycloak-operator
。 - KC_OPERATOR_CHANNEL
-
OLM 订阅通道。如果未设置,将使用所选 operator 的默认通道。
- KC_OPERATOR_VERSION
-
Keycloak Operator 版本。如果未设置,将使用所选通道的当前版本。
请注意,用于 OLM 订阅的实际 Cluster Service Version 按约定设置为
${KC_OPERATOR_NAME}.v${KC_OPERATOR_VERSION}
OpenShift 日志记录
默认情况下启用 OpenShift 日志记录。所有应用程序和基础设施 pod 日志都存储在 openshift-logging
命名空间中未复制的 ElasticSearch 实例中。
可以在 Kibana UI 中查询日志,可以通过 应用程序启动器 → Openshift UI 中的 日志记录 访问 Kibana UI

此外,在查看 pod 的日志时,使用 在 Kibana 中显示 链接来搜索此特定 pod 的日志

首次登录 Kibana 时,创建一个索引模式 *
,并将时间戳字段 @timestamp
设置为能够查询日志。 有关更多详细信息,请参阅 OpenShift 文档。
与其他用户共享一个 OpenShift 集群
以下选项对于自定义 Keycloak 部署是必要的,以便多个用户可以在一个 OpenShift 集群中同时使用它。
KC_NAMESPACE_PREFIX
-
允许自定义命名空间名称。结果命名空间将为
${KC_NAMESPACE_PREFIX}keycloak
。默认情况下,命名空间前缀设置为$(whoami)-
,但可以在.env
文件中自定义。