kubernetes - 将 ACR 集成到 AKS 的预期方式是什么?

标签 kubernetes azure-aks azure-container-registry azure-acr

寻找将 ACR 与 AKS 集成用于生产环境的最佳方法,似乎有多种方法,例如安装期间和安装后、使用服务主体以及使用镜像拉取 secret 等。

因此,对于我们的生产环境,寻找最推荐的选项,其中要求如下。

  • 是否必须在创建 aks 期间附加 acr
  • 如果我们将 ACR 与 AKS 安装本身集成,会有什么优势。 (在这种情况下,我们似乎不想将镜像拉取 secret 传递给 pod 规范,对于我们需要的其他选项)
  • 在这种情况下,将 ACR 与 AKS (az aks update) 命令集成的另一种方法是什么?如果是,与我们之前安装 AKS 时集成的方法有什么不同。
  • 如果我想在另一个区域设置辅助 AKS 集群,但需要连接 ACR 主实例的 ACR 地理复制实例,我该如何完成?在这种情况下,是否必须在 AKS 安装期间或稍后安装后附加 tge ACR?

最佳答案

恕我直言,最好的方法是 Azure RBAC。创建 AKS 时无需附加 ACR。您可以利用 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
  }

关于kubernetes - 将 ACR 集成到 AKS 的预期方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69608296/

相关文章:

某些查询中附加了 kubernetes dns 搜索域

amazon-web-services - AWS NLB 的 IP 与基于实例的目标类型之间的实际区别是什么?

kubernetes - 如何更改 Kubernetes pod tcp_keepalive

c# - Azure 容器注册表 - 列出图像/标签 - 以编程方式

kubernetes - 使用 helm 升级(部署 + PVC)到 Statefulset

azure - Docker-Compose/Kubernetes Yaml 文件上的 CentOS 镜像问题

kubernetes - 在Azure Kubernetes Service(AKS)中使用Dask Kubernetes处理大数据

Azure kubernetes - 如何安装 spinnaker?

azure - 在 Azure 中使用共享卷部署 docker 容器

azure - ACR 到 AKS 部署错误 : The container operating system does not match the host operating system