azure - 使用具有所有者角色的帐户创建 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
解决方案
以下指南回答了我的问题: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>
推荐阅读
- react-native - useLayoutEffect 没有渲染视图
- performance - 有什么方法可以计算 Go 应用的启动时间吗?
- bash - 无法找到可执行文件:“bash”。请验证文件路径是否存在或该文件可以在 PATH 指定的目录中找到
- r - 如何使用 metaprop 计算 R 中的单个比例?
- sql-server - PowerShell/SQL 脚本自动化 - JOB SQL REPORT SERVER
- json - 如何在 Flutter 中调用 POST 函数
- amazon-web-services - 无法通过 Lambda 连接到 VPC 中的公共 RDS
- spring-boot - OAuth2.0授权spring boot web应用流程
- google-apis-explorer - 如何使用扩展属性通过列表谷歌日历 API 过滤事件?
- azure - 使用依赖和条件的 Yaml 多阶段运行