AKS和ACR之间的网络访问规则



我用AKS和ACR实例创建了一个新的资源组。

  • ACR:与任何vnet 无关

    • 网络规则:默认拒绝所有
    • 绕过MS可信服务
  • AKS:不与任何vnet 关联

    • 具有SystemAssigned标识
  • AKS和ACR 之间的AcrPull角色分配

我可以在本地访问这两个资源,但AKS实例无法访问ACR。在玩了一段时间的设置后,我发现AKS可以访问ACR,如果:

  • ACR网络规则默认设置为允许所有
  • ACR网络规则白名单部分20.53.198.0/24IP范围

根据本文档,AKS不是可信服务。但是AKS节点的IP不是你可以控制的。

所以,我的问题是,设置ACR网络规则以确保只有的正确方法是什么

  • AKS
  • 列入白名单的IP

可以访问它吗?

更新

经过一些研究,我发现我必须创建一个专用端点来连接AKS和ACR。

另一篇关于相同主题的帖子,但使用Terraform来实现它

感谢David S的更新。如果其他社区成员遇到同样的要求,请将您的建议作为答案发布,以帮助他们。

您需要一个专用端点来在AKS和ACR之间建立连接

默认情况下,ACR是公共的。此处要禁用其公共FQDN和使其只能使用专用端点(又名PE(进行访问。私有的端点将在子网/VNET中创建一个专用IP地址。这里有关于私人ACR的文档。

专用端点将禁用其主机子网上的NSG。我们不想要这种情况发生在AKS子网中,因此我们可以在AKS中创建另一个子网专用于专用端点的VNET。

建议遵循本教程,将为AKS和ACR设置仅可从Azure虚拟机访问的专用环境提供指导,并在AKS与ACR之间建立连接。

注意:Just Ingore AKS和ACR的VM连接只专注于建立ACR和AKS的连接,如上面第2部分教程和第1点和第3点所述

您也可以参考此文档部署和设置Azure Kubernetes服务和Azure容器注册表之间的私有链接,并禁用公共端点

最新更新