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

Kubernetes集群中Druid管理员用户非API密钥轮换方案咨询

Druid管理员凭证非API轮换方案(K8s + Vault环境)

以下是几个无需依赖Druid API的凭证轮换方案,适配你的K8s+Vault场景:

1. Vault多版本密钥+Druid配置热加载

  • 先在Vault中给管理员密钥开启多版本保留,比如设置max_versions=3、delete_version_after=48h,确保轮换后旧密钥不会立刻被删除,仍可读取。
  • 用Vault Agent Sidecar把新旧版本的密钥分别挂载到Druid Pod的两个目录,比如/druid/creds/current和/druid/creds/previous。
  • 修改Druid的runtime.properties,配置双密码支持:
    # 同时加载新旧密码
    druid.auth.basic.common.password=file:///druid/creds/current/pass
    druid.auth.basic.common.backupPassword=file:///druid/creds/previous/pass
    
  • 利用Druid支持的文件动态读取特性(部分版本默认会定期检查凭证文件变化),无需API调用,等待集群自动加载双密码配置。
  • 确认所有节点都能通过新旧密码认证后,再移除旧密码的挂载和配置项,完成轮换。

2. 临时过渡管理员账号

  • 在Vault中创建一个临时的高权限管理员账号,关闭自动轮换,确保凭证稳定。
  • 通过kubectl exec进入Druid Coordinator Pod,用临时账号登录Druid的Web UI(如果启用),直接修改主管理员的密码为Vault生成的新密钥。
  • 验证新密钥可用后,立即删除临时账号或重置其密钥,避免安全风险。

3. K8s Secret双凭证滚动更新

  • 把Druid的管理员凭证配置为从K8s Secret读取环境变量:
    druid.auth.basic.common.username=${DRUID_ADMIN_USER}
    druid.auth.basic.common.password=${DRUID_ADMIN_PASS}
    druid.auth.basic.common.oldPass=${DRUID_ADMIN_OLD_PASS}
    
  • 当Vault生成新密钥后,先创建包含新旧密钥的临时Secret,更新Druid Deployment,让所有Pod滚动加载双凭证环境变量。
  • 待所有Pod完成更新且双密码验证生效后,再将Secret替换为仅包含新密钥,再次滚动更新Druid,移除旧密码配置。

注意事项

  • 滚动更新时要设置maxUnavailable=1,保证集群始终有可用节点,避免服务中断。
  • 如果Druid默认不支持双密码,可自定义简单的BasicAuthenticator扩展,读取多个密码文件/变量进行验证。
  • 调整Vault的轮换周期,预留足够的过渡时间,确保旧密钥在集群切换完成前不被销毁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 11:27:09