CI / CD尝试从Jenkins部署到AKS失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CI / CD尝试从Jenkins部署到AKS失败相关的知识,希望对你有一定的参考价值。

我已经使用了一个Microsoft templates for CI/CD:Jenkins,Docker(ACS),Kubernetes(AKS)。此模板附带一个管道示例,但在尝试启动它时,我尝试与Azure Kubernetes(AKS)集成时出现以下错误:

Starting Azure Container Service / Kubernetes Service Deployment
Delete Kubernetes management config file 
/var/lib/jenkins/workspace/hello-world/kubeconfig-7112538207763465492
ERROR: ERROR: Status code 403, {"error": 
{"code":"AuthorizationFailed","message":"The client '7912b768-a178-4996- 
b6e6-38912a9b90da' with object id '7912b768-a178-4996-b6e6-38912a9b90da' 
does not have authorization to perform action 
'Microsoft.ContainerService/managedClusters/accessProfiles
/listCredential/action' over scope '/subscriptions/4e601d44-4d18-4e49- 
95001793e668f9e0/resourcegroups/SystemBackend_Resource/
providers/Microsoft.ContainerService/managedClusters/aksa5ru5sgbdaum2/
accessProfiles/clusterAdmin'."}}

任何的想法?

答案

错误说明了这一点,您用来访问AKS群集的客户端(凭据)没有权限在该群集上使用listCredentials操作。您需要授予该客户端这些权限。最简单的方法是将7912b768-a178-4996-b6e6-38912a9b90da的贡献者权利授予SystemBackend_Resource资源组。

New-AzureRmRoleAssignment -ObjectId 7912b768-a178-4996-b6e6-38912a9b90da `
  -RoleDefinitionName "Contributor" `
  -Scope '/subscriptions/4e601d44-4d18-4e49-95001793e668f9e0/resourcegroups/SystemBackend_Resource/'

显然,您可以使用自定义角色仅向该实体授予该权限,但这只是一个示例

以上是关于CI / CD尝试从Jenkins部署到AKS失败的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Azure AKS Kubernetes 集群自签名 CA 添加到 GitLab CI/CD Kubernetes 集成?

Jenkins与Docker的自动化CI/CD流水线实战

用于CI和CD部署的BlackDuck扫描集成

CI/CD技术专题「Jenkins实战系列」Jenkins实现自动化部署+自动化合并其他分支

实践:基于Azure部署Jenkins服务并开发MERN应用的CI/CD构建管道

Jenkins + Gitlab + harbor + Kubernetes实现CI/CD