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

在AKS中从Azure Key Vault创建imagePullSecrets及AKS-ACR免手动集成咨询

解决方案:AKS与ACR集成及基于AKV创建imagePullSecret的方法

一、无需手动创建secret:AKS与ACR直接集成(推荐方案)

这是最省心的方式,完全绕开imagePullSecret的配置,直接让AKS集群获得ACR的镜像拉取权限:

  • 托管身份集成:
    1. 给AKS的系统托管身份(或用户分配的托管身份)添加ACR的AcrPull角色权限
    2. 配置完成后,集群内所有Pod默认就能拉取该ACR中的镜像,无需额外配置任何secret
  • 服务主体集成:
    如果使用服务主体管理权限,给服务主体分配ACR的AcrPull角色,然后在AKS集群创建时指定该服务主体,或者后续通过集群更新操作完成关联

二、用AKV自动生成Kubernetes imagePullSecret(不依赖Pod)

借助Secrets Store CSI Driver + Secret Sync功能,可将AKV中存储的ACR凭据同步为Kubernetes原生Secret,直接作为imagePullSecret使用:

  1. 确保AKS集群已安装Secrets Store CSI Driver和Azure Key Vault Provider组件
  2. 创建SecretProviderClass清单,指定AKV中的凭据(如ACR用户名、密码),并配置同步到Kubernetes Secret:
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: akv-acr-secret-sync
spec:
  provider: azure
  parameters:
    usePodIdentity: "false"
    useVMManagedIdentity: "true"
    userAssignedIdentityID: "<你的托管身份ID>"
    keyvaultName: "<你的AKV实例名称>"
    objects: |
      array:
        - |
          objectName: acr-username
          objectType: secret
        - |
          objectName: acr-password
          objectType: secret
    tenantId: "<你的Azure租户ID>"
  secretObjects:
  - data:
    - key: username
      objectName: acr-username
    - key: password
      objectName: acr-password
    secretName: acr-imagepullsecret
    type: kubernetes.io/dockerconfigjson
  1. 应用该清单后,CSI Driver会自动在集群中生成名为acr-imagepullsecret的imagePullSecret,可直接在Pod或ServiceAccount的配置中引用
  2. 注意:用于访问AKV的身份需具备AKV的Get权限,以及同步生成Kubernetes Secret的权限

三、纯清单方式创建imagePullSecret(不推荐)

如果要直接用Kubernetes清单定义,本质是把AKV中的凭据提前取出后硬编码到清单里,但这种方式存在安全风险(凭据明文暴露),不建议使用。更安全的方式还是依赖上述Secret Sync功能,自动从AKV同步生成Secret。

总结:

  • 优先选择AKS与ACR的身份直接集成,完全无需处理secret配置
  • 若必须用AKV存储凭据,使用Secrets Store CSI Driver的Secret Sync功能自动生成imagePullSecret,无需依赖Pod挂载

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:40:43