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

Kubernetes部署Keycloak配置AWS RDS外部PostgreSQL不生效问题

问题根因

你使用的Keycloak 17.0.0是基于Quarkus构建的新版本,配置中使用的DB_ADDR、DB_VENDOR、DB_DATABASE、DB_USER、DB_SCHEMA均是旧WildFly架构版本的环境变量,Quarkus版Keycloak不会识别这些配置,因此启动时默认回退到内置的H2内存数据库。
另外你原配置中DB_ADDR的赋值方式本身也有错误:即使在旧版Keycloak中,DB_ADDR也仅需要填写数据库主机地址,不需要携带jdbc:postgresql://前缀和数据库名后缀。

修正方案

将所有旧格式的数据库环境变量替换为Quarkus版Keycloak支持的标准配置项,同时修正连接串格式:

  • 删除原有所有DB_前缀的数据库配置变量
  • 新增以下Quarkus版数据库配置变量:
# 数据库类型固定为postgres
- name: KC_DB
  value: postgres
# 完整JDBC连接串,注意补上默认端口5432,替换为实际数据库名
- name: KC_DB_URL
  value: jdbc:postgresql://database.c**7irl*****.us-east-1.rds.amazonaws.com:5432/<替换为实际数据库名>
# 数据库用户名
- name: KC_DB_USERNAME
  value: postgres
# 数据库对应用户密码,替换为实际RDS账号密码
- name: KC_DB_PASSWORD
  value: <替换为RDS数据库实际密码>
# 数据库schema
- name: KC_DB_SCHEMA
  value: public

修正后完整的容器env块参考如下:

env:
- name: KEYCLOAK_ADMIN
  value: ****
- name: KEYCLOAK_ADMIN_PASSWORD
  value: *****
- name: PROXY_ADDRESS_FORWARDING
  value: "true"
- name: KC_DB
  value: postgres
- name: KC_DB_URL
  value: jdbc:postgresql://database.c**7irl*****.us-east-1.rds.amazonaws.com:5432/<实际数据库名>
- name: KC_DB_USERNAME
  value: postgres
- name: KC_DB_PASSWORD
  value: <实际RDS密码>
- name: KC_DB_SCHEMA
  value: public
- name: JGROUPS_DISCOVERY_PROTOCOL
  value: dns.DNS_PING
- name: JGROUPS_DISCOVERY_PROPERTIES
  value: dns_query=keycloak
- name: CACHE_OWNERS_COUNT
  value: "2"
- name: CACHE_OWNERS_AUTH_SESSIONS_COUNT
  value: "2"
配套排查检查项
  • 网络连通性校验:在K8s集群同命名空间启动临时PostgreSQL客户端Pod,验证是否可以正常连接RDS实例的5432端口,排除安全组、VPC网络ACL、K8s网络策略拦截的问题
  • 版本兼容性校验:Keycloak 17.0.0默认附带的PostgreSQL驱动最高支持PostgreSQL 14版本,如果RDS实例使用15及以上大版本,会出现驱动兼容报错,需要升级Keycloak版本
  • 日志校验:你已经配置了DEBUG日志级别,启动后查看日志中是否出现PostgreSQL驱动加载、数据库连接建立的相关日志,如果依旧出现H2数据库初始化日志,说明配置项未正确生效
  • 配置生效校验:应用新配置后需要完全删除旧的Pod,等待Deployment滚动更新完成后再验证连接状态,避免旧Pod缓存配置导致验证结果不准

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:24:35