不同资源组的私有aks和acr
Private aks and acr in different resource group
我想要一个零信任的基础设施,所以我需要 aks
和 acr
完全独立,并且只需要一个连接来拉取图像。我通过 azure 门户创建了一个私有 aks
(为其分配特定 vnet),并创建了一个私有 acr
(没有主体服务)。然后我在 acr
访问角色中为 aks
添加 acrPull
角色,然后我通过它们之间 acr
的网络部分添加私人访问。不幸的是,当我尝试 az aks check-acr
命令时 returns:
Validating image pull permission: FAILED
[2022-01-19T14:00:37Z] ACR containerregistrymaryam.azurecr.io rejected token exchange: ACR token exchange endpoint returned error status: 403. body:
当前权限和连接状态如下:
如果您有任何线索,请告诉我,谢谢!
您需要将角色 AcrPull
分配给节点池的 Kubelet 身份,而不是 AKS 身份:
export KUBE_ID=$(az aks show -g <resource group> -n <aks cluster name> --query identityProfile.kubeletidentity.objectId -o tsv)
export ACR_ID=$(az acr show -g <resource group> -n <acr name> --query id -o tsv)
az role assignment create --assignee $KUBE_ID --role "AcrPull" --scope $ACR_ID
我想要一个零信任的基础设施,所以我需要 aks
和 acr
完全独立,并且只需要一个连接来拉取图像。我通过 azure 门户创建了一个私有 aks
(为其分配特定 vnet),并创建了一个私有 acr
(没有主体服务)。然后我在 acr
访问角色中为 aks
添加 acrPull
角色,然后我通过它们之间 acr
的网络部分添加私人访问。不幸的是,当我尝试 az aks check-acr
命令时 returns:
Validating image pull permission: FAILED
[2022-01-19T14:00:37Z] ACR containerregistrymaryam.azurecr.io rejected token exchange: ACR token exchange endpoint returned error status: 403. body:
当前权限和连接状态如下:
您需要将角色 AcrPull
分配给节点池的 Kubelet 身份,而不是 AKS 身份:
export KUBE_ID=$(az aks show -g <resource group> -n <aks cluster name> --query identityProfile.kubeletidentity.objectId -o tsv)
export ACR_ID=$(az acr show -g <resource group> -n <acr name> --query id -o tsv)
az role assignment create --assignee $KUBE_ID --role "AcrPull" --scope $ACR_ID