You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OpenShift生产环境部署带外部数据库的Keycloak容器?

在OpenShift生产环境部署带外部数据库的Keycloak容器指南

官方生产部署基础

Keycloak官方提供了生产环境部署的完整规范,针对OpenShift场景,核心是脱离开发模式(start-dev),采用生产启动命令start,并配置外部数据库、持久化存储、HTTPS等关键组件,满足生产环境的稳定性、安全性要求。

部署关键步骤

1. 准备外部数据库

  • 部署Keycloak支持的数据库(推荐PostgreSQL,也可使用MySQL、MariaDB等),可部署在OpenShift集群内或外部
  • 创建专属的数据库实例和用户,授予该用户创建表、读写数据的完整权限
  • 记录数据库连接信息:主机地址、端口、数据库名、用户名、密码

2. 配置Keycloak生产启动参数

在OpenShift部署时,通过环境变量或启动命令指定生产模式与数据库配置:

  • 启动命令改用start,替代开发模式的start-dev
  • 指定数据库类型:如PostgreSQL设置KC_DB=postgres
  • 配置数据库连接:
    • KC_DB_URL:数据库JDBC连接URL(例:jdbc:postgresql://db-service:5432/keycloak)
    • KC_DB_USERNAME:数据库用户名
    • KC_DB_PASSWORD:数据库密码
    • KC_DB_SCHEMA:数据库Schema(默认public,按需调整)
  • 强制启用HTTPS:可利用OpenShift路由自带的证书,或通过KC_HTTPS_CERTIFICATE_FILE、KC_HTTPS_CERTIFICATE_KEY_FILE挂载自定义证书文件

3. OpenShift专属配置要点

  • 持久化存储:创建PersistentVolumeClaim(PVC),挂载到Keycloak容器的/opt/keycloak/data路径,用于存储自定义主题、扩展等数据
  • 资源配额:根据业务负载设置CPU、内存的请求与限制值,避免资源耗尽或闲置
  • 健康检查:配置存活探针(curl http://localhost:8080/health/live)和就绪探针(curl http://localhost:8080/health/ready),确保Pod状态正常
  • 权限管理:为Keycloak服务账号分配必要权限,包括读取PVC、访问数据库网络的权限
  • 高可用配置:若需集群化部署,设置Deployment副本数≥2,同时配置KC_CACHE=ispn启用分布式缓存,结合外部数据库实现数据共享

4. 启动命令示例

容器启动命令示例(可通过OpenShift Secrets注入敏感信息):

/opt/keycloak/bin/kc.sh start \
  --db=postgres \
  --db-url=jdbc:postgresql://postgres-service:5432/keycloak \
  --db-username=${DB_USER} \
  --db-password=${DB_PASSWORD} \
  --https-certificate-file=/etc/keycloak/certs/tls.crt \
  --https-certificate-key-file=/etc/keycloak/certs/tls.key \
  --hostname=keycloak.your-domain.com

内容的提问来源于stack exchange,提问作者Epic555

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 02:05:32