我尝试了az aks show和az aks list命令,但是它们不显示附加的ACR的名称 我运行了使用az aks update --atach-acr附加acr的命令,它显示出附加的内容。
我可以通过CLI或门户网站看到acr在集群中吗?
答案 0 :(得分:0)
恐怕您在群集UI门户中看不到所附的ACR。
使用az aks update --atach-acr
命令将ACR附加到AKS群集时。
它刚刚将ACR的AcrPull角色分配给了与AKS群集关联的服务主体。有关更多信息,请参见here。
您可以通过命令az aks list
请参见以下屏幕截图。 AcrPull角色已分配给与AKS群集关联的服务主体。
如果要使用Az cli检查哪个ACR附加到AKS群集。您可以列出所有ACR。然后遍历ACR,检查哪个ACR已将AcrPull角色分配给了Aks服务主体。参见以下示例:
# list all the ACR and get the ACR id
az acr list
az role assignment list --assignee <Aks service principal ID> --scope <ACR ID>
答案 1 :(得分:0)
实际上,命令中的参数--attach-acr
仅将角色ACRPull
授予AKS的服务主体。与以前没有任何区别。您只能看到AKS的服务主体。当前,如果您尚不知道ACR范围,则CLI命令az role assignment list
无法直接获取ACR。但是您可以像这样首先获取主体ID:
az aks show --resource-group groupName --name aksName --query identityProfile.kubeletidentity.objectId
然后使用CLI命令获取ACR的资源ID:
az rest --method get --uri "https://management.azure.com/subscriptions/{subscription_id}/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01" --uri-parameters "\$filter=principalId eq 'objectId'" --query "value[0].properties.scope"
如果您知道ACR资源ID,我想您清楚地知道哪个ACR附加到了AKS。
答案 2 :(得分:0)
az aks check-acr
命令检查某个 ACR 是否可从特定 AKS 获得。
您必须同时提供 ACR 和 AKS 作为参数,因此这不利于发现。
您可以围绕此构建一个小脚本,查询多个订阅的已注册 ACR(您不能将多个订阅参数传递给 az acr list --subscription
,您必须逐一查询订阅),构建一个聚合表的 ACR 然后在循环中将这些值传递给 az aks check-acr
。