在 OpenShift 上安装 Keycloak
在 OpenShift 上部署 Keycloak,使用与 Minikube 环境类似的设置。
虽然 Minikube 是此设置的主要目标,但这跟踪了如何在 OpenShift 环境中使用它的进度,请参见 支持的功能。
需要具有 cluster-admin
角色才能访问 OpenShift,才能安装自定义资源定义。
OpenShift 不得从互联网访问,因为此设置会打开节点端口和 URL,这些端口和 URL 未通过良好的密码和传输加密进行适当保护。 |
支持的功能
目前,以下功能已知无法在 OpenShift 上运行
- sqlpad
-
容器需要 root 用户。
- 监控
-
OpenShift 仅提供 Grafana、OpenTelemetry 和 Jaeger 用于监控。Graphite 尚未实现。
Cryostat 依赖于 Cryostat 运算符进行安装,这是 在 AWS 上安装 OpenShift 提供的安装脚本的默认设置。
在 OpenShift 上安装 Keycloak
-
从 https://github.com/keycloak/keycloak-benchmark/ 检查 Git 存储库。
-
更改到文件夹
provision/openshift
。 -
运行
task
命令以在 OpenShift 上配置所有容器。
要配置部署,请参见 自定义部署 获取详细信息。
从 Operator Hub 安装 Keycloak
默认情况下,运算符是通过 keycloak-k8s-resources
直接安装的。
要从Operator Hub 使用Operator Lifecycle Manager 安装运算符,请设置
KC_OPERATOR_OLM=true
此外,还可以自定义以下参数
- KC_OPERATOR_CATALOG_SOURCE_NS
-
OLM 目录源的命名空间。默认为
openshift-marketplace
。 - KC_OPERATOR_CATALOG_SOURCE
-
OLM 目录源。默认为
community-operators
。 - KC_OPERATOR_NAME
-
目录源中 Keycloak 运算符的名称。默认为
keycloak-operator
。 - KC_OPERATOR_CHANNEL
-
OLM 订阅频道。如果未设置,将使用所选运算符的默认频道。
- KC_OPERATOR_VERSION
-
Keycloak 运算符版本。如果未设置,将使用所选频道的当前版本。
请注意,用于 OLM 订阅的实际集群服务版本是按约定设置的,如下所示
${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 集群
以下选项对于以可由一个 OpenShift 集群中的多个用户同时使用的方式自定义 Keycloak 部署是必要的。
KC_NAMESPACE_PREFIX
-
允许自定义命名空间名称。生成的命名空间将为
${KC_NAMESPACE_PREFIX}keycloak
。默认情况下,命名空间前缀设置为$(whoami)-
,但可以在.env
文件中进行自定义。