#kubernetes #azure-aks #azure-container-registry #azure-acr
Вопрос:
В поисках наилучшего способа интеграции ACR с AKS для производственной среды, похоже, существует несколько способов, например, во время установки и после установки, с помощью принципала службы,а также с помощью секретного извлечения изображений и т. Д..
Поэтому для нашей производственной среды ищем наиболее рекомендуемый вариант, где требования следующие.
- Обязательно ли прикреплять acr во время самого создания aks
- В чем будет преимущество, если мы интегрируем ACR вместе с самой установкой AKS. (похоже , в этом случае мы не хотим передавать секрет извлечения изображения в спецификацию модуля, а для других опций нам нужно)
- Какой еще способ интеграции ACR с командой AKS ( az aks update) поможет в этом случае? если да, то в чем будет отличие от предыдущего метода, в котором мы интегрировались во время установки AKS.
- ЕСЛИ я хочу настроить вторичный кластер AKS в другом регионе, но мне нужно подключить геореплицированный экземпляр ACR основного экземпляра ACR , как я могу это сделать? В этом случае обязательно ли подключать tge ACR во время установки AKS или позже после установки также хорошо?
Ответ №1:
ИМХО, лучший способ-это Azure RBAC. Вам не нужно присоединять ACR при создании AK. Вы можете использовать Azure RBAC и назначить роль «AcrPull» идентификатору Kubelet вашего пула узлов. Это можно сделать для каждого ACR, который у вас есть:
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
Терраформировать:
resource "azurerm_role_assignment" "example" {
scope = azurerm_container_registry.acr.id
role_definition_name = "AcrPull"
principal_id = azurerm_kubernetes_cluster.aks.kubelet_identity[0].object_id
}
Комментарии:
1. Здорово.. Звучит хорошо.. Я использовал принципала обслуживания во время установки AKS с Terraform.. Если я предоставлю ту же роль serviceprincipal «ACRPull» вручную существующему ACR, получит ли этот AKS доступ для прямого извлечения изображения?