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

通过Helm在自建K8S部署SonarQube后PostgreSQL密码不生效问题

问题

通过Helm在自建K8S集群部署SonarQube,使用官方SonarSource的Helm Chart。values.yaml配置如下:

service:
  type: NodePort
  port: 9000
  nodePort: 30000

ingress:
  enabled: false


persistence:
  enabled: true
  storageClass: "local-path"
  size: 10Gi


postgresql:
  postgresqlPassword: "randompass"
  persistence:
    storageClass: "local-path"

account:
  currentAdminPasswordSecretName: sonarqube-admin-secret  # The secret containing the current admin password
  adminPasswordSecretName: sonarqube-admin-secret  # The secret containing the new admin password

执行部署命令:

helm upgrade --install sonarqube sonarqube/sonarqube -n sonarqube -f values.yaml

部署后创建sonarqube-postgresql-0和sonarqube-sonarqube-0两个Pod。进入PostgreSQL Pod执行psql -U sonarUser -d sonarDB时,自定义密码randompass登录失败,使用默认密码sonarPass可成功连接,请问问题出在哪里?

原因分析与解决办法
  • 持久化存储保留旧数据:你开启了PostgreSQL的持久化存储persistence.enabled: true,且使用local-path存储类。如果之前部署过该Chart,对应的PersistentVolumeClaim(PVC)会保留旧的数据库数据,其中包含初始的默认密码。即使修改postgresql.postgresqlPassword配置,PostgreSQL启动时会优先读取已有数据里的密码,不会重新初始化。
  • Helm升级不重置持久化数据:Helm的upgrade操作不会清除已存在的持久化数据卷,只有当PVC不存在时,才会创建新卷并使用配置的密码初始化数据库。

解决步骤:

  1. 删除PostgreSQL对应的PVC:
kubectl delete pvc data-sonarqube-postgresql-0 -n sonarqube
  1. 删除PostgreSQL Pod,让StatefulSet重新创建Pod并绑定新PVC,此时会用配置的randompass初始化密码:
kubectl delete pod sonarqube-postgresql-0 -n sonarqube
  1. 等待Pod重启完成后,使用randompass即可正常登录。

注意:此操作会清空原有数据库数据,生产环境执行前请务必备份数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 17:34:50