AKS中使用Pod Identity做触发认证的KEDA scaler无法工作如何解决
问题根因
从MIC日志的LinkedAuthorizationFailed错误可以直接定位:AKS集群用于管理节点VMSS的身份,缺少将你创建的autoscaler-id用户托管标识分配到节点的权限,导致身份绑定失败,KEDA operator自然无法拿到对应的身份令牌。
修复步骤
- 给集群管理身份分配托管标识操作权限
执行以下Azure CLI命令,给日志中报错的客户端身份授予托管标识操作者角色,授权其可以分配指定的用户托管标识:
az role assignment create --assignee fe0d7679-8477-48e3-ae7d-43e2a6fdb957 --role "Managed Identity Operator" --scope /subscriptions/f3786c6b-8dca-417d-af3f-23929e8b4129/resourcegroups/arun/providers/microsoft.managedidentity/userassignedidentities/autoscaler-id
确认Pod Identity绑定配置正确
检查你部署的AzureIdentityBinding资源的selector字段值,必须和你安装KEDA时设置的podIdentity.activeDirectory.identity=app-autoscaler完全一致,才能正确匹配KEDA operator Pod的标签。确认托管标识的服务总线权限
给autoscaler-id用户托管标识分配目标服务总线命名空间的Azure Service Bus Data Receiver角色,确保KEDA有权限读取队列消息数。重启相关Pod验证
角色分配生效后,重启AAD Pod Identity的MIC Pod和KEDA operator Pod,等待1-2分钟后观察是否还有报错,测试队列消息增加时是否可以正常扩容。
内容的提问来源于stack exchange,提问作者iarunpaul
相关产品推荐
相关产品推荐

