【问题标题】:how to view attached ACR in AKS clusters in Azure如何在 Azure 的 AKS 群集中查看附加的 ACR
【发布时间】:2021-02-06 21:53:19
【问题描述】:

我尝试了az aks showaz aks list 命令,但它们没有显示附加ACR 的名称。 我使用az aks update --attach-acr 运行了附加 acr 的命令,它显示它已附加。

我可以通过 CLI 或门户看到 acr 在集群中吗?

【问题讨论】:

    标签: azure kubernetes azure-devops azure-container-registry


    【解决方案1】:

    恐怕您在集群 UI 门户中看不到附加的 ACR。

    当您使用 az aks update --attach-acr 命令将 ACR 附加到 AKS 群集时。

    它只是将 ACR 的 AcrPull 角色分配给与 AKS 群集关联的服务主体。有关详细信息,请参阅 here

    您可以通过命令az aks list获取与AKS集群关联的服务主体

    请看下面的截图。 AcrPull 角色已分配给与 AKS 群集关联的服务主体。

    如果要使用 Azure CLI 检查哪个 ACR 已附加到 AKS 群集。您可以列出所有 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>
    

    【讨论】:

    • 非常感谢,这些命令有效,我确实看到分配给集群的 ACRPull 角色
    • 在哪里可以看到 Protal 上的 ACRPull 角色? aks的IAM? @Levi Lu-MSFT
    • 请参阅此页面的第 2 步 - docs.microsoft.com/en-us/azure/role-based-access-control/… - 查看 Azure 门户上的 ACRPull 角色。本质上,ACR -> 访问控制 (IAM) -> 角色分配。
    【解决方案2】:

    实际上,命令中的参数--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 附加到哪个 ACR。

    【讨论】:

    • 非常感谢,这也有效。感谢您的时间和精力
    • @JobySanthosh 我认为我的解决方案更合适。如果您在工作之前就知道 ACR 资源 Id,那您为什么还要找出 ACR 附加到 AKS 的原因?!
    【解决方案3】:

    az aks check-acr 命令检查某个 ACR 是否可从特定 AKS 获得。

    您必须同时提供 ACR 和 AKS 作为参数,因此这不利于发现。

    您可以围绕此构建一个小脚本,查询多个订阅的注册 ACR(您不能将多个订阅参数传递给 az acr list --subscription,您必须逐个查询订阅),构建一个聚合表ACR 然后将这些值循环传递给az aks check-acr

    【讨论】:

    • 我得到了CommandNotFoundError: 'check-acr' is misspelled or not recognized by the system.,但是docs.microsoft.com/en-us/cli/azure/… 中提到了这个命令,所以我想知道什么给出了?
    • 自动完成在我的机器上完成此命令。 » az aks check-acrthe following arguments are required: --resource-group/-g, --name/-n, --acr你的完整命令是什么?
    • @MartinCapodici 可能是您的 Azure CLI 版本已过时,尚不支持此命令。
    猜你喜欢
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 2019-01-10
    相关资源
    最近更新 更多