首页 > 解决方案 > 使用具有所有者角色的帐户创建 LoadBalancer 服务时 AKS 授权失败

问题描述

我正在尝试创建一个负载均衡器服务,该服务链接到 kubectl 上的现有 PublicIP。虽然我是 resourceGroup(publicIP 和 k8s 集群)的所有者,但服务创建挂起,并在 kubectl describe 中出现以下错误:

同步负载均衡器时出错:无法确保负载均衡器:Retriable: false, RetryAfter: 0s, HTTPStatusCode: 403, RawError: Retriable: false, RetryAfter: 0s, HTTPStatusCode: 403, RawError: {"error":{"code":" AuthorizationFailed","message":"对象 id 为 '[OBJECT_ID]' 的客户端 '[CLIENT_ID]' 无权在范围 '/subscriptions/[SUBSCRIPTION]/resourceGroups 上执行操作 'Microsoft.Network/publicIPAddresses/read' /[RESOURCE_GROUP]/providers/Microsoft.Network' 或范围无效。如果最近授予访问权限,请刷新您的凭据。"}}

我尝试在我的 kubectl 客户端上分配 Owner 角色,但问题仍然存在。

az role assignment create 
    --role Owner 
    --assignee xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

AKS 1.18.14

标签: azurekubernetesazure-akskubernetes-service

解决方案


以下指南回答了我的问题:https ://docs.microsoft.com/en-us/azure/aks/static-ip#create-a-service-using-the-static-ip-address

事实证明,所有者许可在某种程度上是不够的。添加以下权限后,我可以创建一个链接到现有负载均衡器的服务:

az role assignment create \
    --assignee <SP Client ID> \
    --role "Network Contributor" \
    --scope /subscriptions/<subscription id>/resourceGroups/<resource group name>

推荐阅读