通过服务连接使用KubeLogin实现AKS部署的DevOps流水线问题
解决Azure托管代理执行Helm Upgrade时缺少kubelogin的问题
问题原因
你的AKS集群启用了AAD身份验证,连接这类集群需要kubelogin工具处理身份验证流程,但最新Ubuntu版本的Azure托管代理默认未预装该工具,导致流水线执行时无法获取集群凭证,进而出现连接失败的报错。
解决方案
在Helm Upgrade任务之前添加脚本任务,手动安装kubelogin,具体可选择以下两种方法:
方法1:通过Azure CLI扩展安装(推荐)
添加「Azure CLI」任务,执行以下命令:
az aks install-cli
该命令会自动安装/更新kubectl和kubelogin到代理机器的系统路径中,确保后续Helm任务能正常调用。
方法2:手动下载二进制文件安装
若Azure CLI安装方式存在问题,可添加「Bash」任务,执行以下命令完成安装:
# 下载适配Linux x64的kubelogin二进制包 curl -LO https://github.com/Azure/kubelogin/releases/latest/download/kubelogin-linux-amd64.zip # 解压文件 unzip kubelogin-linux-amd64.zip # 将kubelogin移动到系统PATH目录,确保全局可调用 sudo mv kubelogin /usr/local/bin/ # 验证安装结果 kubelogin --version
可选验证步骤
安装完成后,可在脚本中添加以下命令提前验证集群连通性:
# 通过Azure服务连接获取AKS集群凭证 az aks get-credentials --resource-group <你的资源组名称> --name <你的AKS集群名称> # 验证集群连接是否正常 kubectl get namespaces
注意事项
- 确保Azure Resource Manager服务连接拥有AKS集群的「Azure Kubernetes Service Cluster User Role」或更高权限,避免后续出现权限不足问题。
- 若使用自托管代理,可提前在代理机器上预装
kubelogin,减少流水线重复安装的耗时。
内容的提问来源于stack exchange,提问作者Brijesh Shah
相关产品推荐
相关产品推荐

