You need to enable JavaScript to run this app. Azure Key Vault密钥更新时如何自动重启Pod/Deployment等K8s工作负载
优惠活动
大模型
产品
解决方案
定价
更多

Azure Key Vault密钥更新时如何自动重启Pod/Deployment等K8s工作负载

实现AKV密钥更新后自动重启工作负载的方案

如果你已经在使用AzureKeyVaultSecret CRD且不想通过output配置将密钥同步为Kubernetes原生Secret,可以通过以下两种方式实现AKV密钥变更时自动触发Pod/Deployment/StatefulSet滚动重启:

方案1:使用Azure Key Vault Provider for Secrets Store CSI Driver内置特性

该方案无需额外安装第三方组件,依赖官方CSI驱动的原生能力实现:

  • 安装CSI驱动时开启密钥自动轮换能力,执行安装命令时添加参数--set enableSecretRotation=true,可同时通过rotationPollInterval=2m配置AKV变更轮询间隔(默认2分钟)。
  • 你的SecretProviderClass配置无需添加同步K8s Secret的secretObjects字段,仅需在工作负载中通过volumeMount挂载对应CSI卷即可。
  • 在需要自动重启的Deployment/StatefulSet的metadata.annotations中添加配置:secrets-store.csi.k8s.io/secret-rotation-restart: "true",当CSI驱动检测到AKV内对应密钥版本更新时,会自动触发该工作负载的滚动重启,新启动的Pod会直接拉取最新的AKV密钥。

方案2:搭配Reloader组件实现自定义监听

如果需要更灵活的监听和重启规则,可以配合第三方轻量组件Reloader实现:

  • 首先在集群中安装Reloader组件,该组件支持监听外部密钥存储的版本变更并触发关联工作负载重启。
  • 在需要自动重启的Deployment/StatefulSet的metadata.annotations中添加如下配置即可:
annotations:
  reloader.stakater.com/auto: "true"
  secret.reloader.stakater.com/auto-reload-azure-keyvault: "true"
  • 如需仅监听指定的AzureKeyVaultSecret资源避免误重启,可以改为指定匹配规则:
annotations:
  reloader.stakater.com/search: "true"
  reloader.stakater.com/match: "你的AzureKeyVaultSecret资源名称"
  • Reloader会按配置的轮询间隔检测对应AKV密钥的版本变化,检测到更新后自动触发工作负载滚动重启。

注意事项

  • 两种方案都需要确保CSI驱动或Reloader对应的集群访问身份,已经被授予AKV的secret get、secret list权限,否则无法检测到密钥变更。
  • 轮询间隔不建议设置过短,避免触发AKV的请求频率限制,通常2-5分钟是比较合理的配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 01:36:02