Azure DevOps流水线KubernetesManifest创建Secret在私有AKS集群遇Base64非法数据错误
问题描述
尝试通过基于VMSS代理的Azure DevOps流水线将应用部署至私有AKS集群,已使用kubeConfig选项创建服务连接(未验证保存)来实现连通性。
任务配置
- task: KubernetesManifest@0 displayName: create secret inputs: action: 'createSecret' kubernetesServiceConnection: PRIVATE_AKS_SC namespace: 'default' secretType: 'dockerRegistry' secretName: 'mysecret' dockerRegistryEndpoint: 'PRIVATE_ACR_SC'
错误信息

该任务在公共AKS集群中可正常运行。
排查与解决方案
- 验证VMSS代理与私有AKS的网络连通性:私有AKS的API服务器仅开放给授权网络,需确保VMSS所在虚拟网络与AKS集群VNet已对等互联,且VMSS的公网/内网IP已加入AKS API服务器的允许列表。可在VMSS实例上执行
curl https://<AKS_API_SERVER>:443测试是否能正常访问。 - 修复Kubernetes服务连接配置:未验证的服务连接可能存在凭据或地址错误。重新编辑服务连接,勾选「验证连接」确保连通成功;检查kubeConfig中的
server字段是否为AKS内部API地址(VMSS可访问),同时确认证书、token等凭据未过期。 - 检查ACR服务连接权限:
PRIVATE_ACR_SC对应的身份需拥有ACR的AcrPull角色权限。可在VMSS上执行az acr login --name <你的ACR名称>测试登录是否正常。 - 临时调整任务参数(测试用):若AKS使用自签证书,可在任务中添加
arguments: '--insecure-skip-tls-verify'跳过证书验证(生产环境不建议),排查是否为证书问题。 - 查看VMSS代理日志:登录VMSS实例,查看Azure DevOps代理日志(路径:Windows为
C:\agent\_diag,Linux为/home/vsts/agent/_diag),获取更详细的错误细节。
内容的提问来源于stack exchange,提问作者Uday Kiran
相关产品推荐
相关产品推荐

