如何配置Keycloak Helm Chart使用Google Cloud Postgres等外部数据库?
GKE部署Keycloak Helm对接Cloud PostgreSQL操作步骤
1. 前置准备
- 已创建可用的Google Cloud PostgreSQL实例,完成VPC网络配置,确保GKE集群可访问该实例
- 提前在PostgreSQL实例中创建独立的
keycloak数据库,以及仅拥有该库读写权限的专用账号 - 本地环境已安装
helm、kubectl工具,且已配置好目标GKE集群的访问上下文 - 若使用Cloud SQL Auth Proxy方式连接,需提前为GKE工作负载服务账号绑定
roles/cloudsql.client权限
2. 编写自定义配置文件values.yaml
禁用Helm Chart内置的PostgreSQL实例,配置外部Cloud PostgreSQL连接参数:
# 关闭内置PostgreSQL postgresql: enabled: false # 外部数据库配置 externalDatabase: vendor: "postgres" host: "Cloud PostgreSQL内网连接地址" port: 5432 database: "keycloak" user: "Keycloak专用数据库账号" password: "Keycloak专用数据库密码" # 生产环境建议用Secret存储密码,替换上面的password参数: # existingSecret: "你创建的存储数据库密码的Secret名称" # 可选:启用Cloud SQL Auth Proxy(无需配置数据库白名单,安全性更高) extraContainers: - name: cloud-sql-proxy image: gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.11.4 args: - "--port=5432" - "你的Cloud SQL实例连接名(格式:项目ID:区域:实例ID)" securityContext: runAsNonRoot: true
生产环境禁止在values.yaml中明文填写密码,需提前创建Kubernetes Secret存储敏感信息,通过
existingSecret参数引用。
3. 执行Helm部署
运行以下命令完成Keycloak部署:
# 添加Bitnami Helm仓库并更新索引 helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update # 部署Keycloak到keycloak命名空间 helm install keycloak bitnami/keycloak -f values.yaml -n keycloak --create-namespace
4. 部署验证
- 执行
kubectl get pods -n keycloak,确认Keycloak Pod状态为Running - 访问Keycloak管理员控制台,创建测试配置后重启Pod,验证配置是否正常持久化到外部数据库
- 查看Cloud PostgreSQL实例的连接日志,确认Keycloak的连接请求正常
内容的提问来源于stack exchange,提问作者Nikhil Lingam
相关产品推荐
相关产品推荐

