你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
网络隔离的 Azure Kubernetes 服务 (AKS) 群集(预览版)
组织通常具有严格的安全性和合规性要求,需要对群集的出口(出站)网络流量进行监管,以消除数据外泄的风险。 默认情况下,Azure Kubernetes 服务 (AKS) 群集的出站互联网访问不受限制。 此级别的网络访问权限允许运行的节点和服务根据需要访问外部资源。 如果希望限制出口流量,则必须限制可访问的端口和地址数量,才能维护正常的群集维护任务。 关于 AKS 群集的出站网络和 FQDN 规则的概念文档提供了 AKS 群集及其可选加载项和功能所需的终结点列表。
限制来自群集的出站流量的一种解决方案是使用防火墙设备基于域名限制流量。 手动配置防火墙所需的出口规则和 FQDN 是一个繁琐复杂的过程。
另一种解决方案是网络隔离的 AKS 群集(预览版),它可简化群集的出站限制设置。 然后,群集操作员可以增量为要启用的每个方案设置允许的出站流量。 因此,网络隔离的 AKS 群集可降低数据外泄的风险。
重要
AKS 预览功能是可选择启用的自助功能。 预览功能是“按现状”和“按可用”提供的,不包括在服务级别协议和有限保证中。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:
网络隔离的群集的工作原理
下图显示了 AKS 网络隔离群集中各依赖项之间的网络通信。
AKS 群集会从 Microsoft 工件注册表 (MAR) 拉取群集及其功能或加载项所需的映像。 此映像拉取让 AKS 可以提供较新版本的群集组件,并解决关键安全漏洞。 网络隔离群集会尝试从连接到该群集的专用 Azure 容器注册表 (ACR) 实例中拉取这些映像,而不是从 MAR 拉取。 如果映像不存在,专用 ACR 会从 MAR 中拉取它们,并通过专用终结点传送它们,无需启用从群集到公共 MAR 终结点的出口。
对于具有网络隔离群集的专用 ACR,支持以下选项:
AKS 管理的 ACR - AKS 会在此选项中创建、管理和协调 ACR 资源。 无需分配任何权限或管理 ACR。 AKS 管理网络隔离群集中使用的缓存规则、专用链接和专用终结点。 AKS 管理的 ACR 遵循与基础结构资源组中的其他资源(路由表、Azure 虚拟机规模集等)相同的行为。 为避免群集组件或新节点启动失败的风险,请勿更新或删除 ACR、其缓存规则或其系统映像。 AKS 管理的 ACR 会持续进行协调,以确保群集组件和新节点能够按预期工作。
注意
删除 AKS 网络隔离群集后,相关资源(如 AKS 管理的 ACR、专用链接和专用终结点)会自动删除。
自带 (BYO) ACR - BYO ACR 选项要求创建一个在 ACR 资源和 AKS 群集之间具有专用链接的ACR。 请参阅使用 Azure 专用链接以非公开方式连接到 Azure 容器注册表,了解如何为注册表配置专用终结点。
注意
当你删除 AKS 群集时,BYO ACR、专用链接和专用终结点不会自动删除。 如果你向 BYO ACR 中添加了自定义映像和缓存规则,那么在群集协调、禁用该功能或删除 AKS 群集之后,它们仍会保留。
创建网络隔离 AKS 群集时,可以选择以下专用群集模式之一:
- 基于专用链接的 AKS 群集 - 控制平面或 API 服务器位于 AKS 管理的 Azure 资源组中,而你的节点池位于你的资源组中。 服务器与节点池可以通过 API 服务器虚拟网络中的 Azure 专用链接服务以及在 AKS 群集的子网中公开的专用终结点相互通信。
- API 服务器 VNet 集成(预览版)- 配置了 API 服务器 VNet 集成的群集会将 API 服务器终结点直接投影到 AKS 部署所在的虚拟网络中的一个委托子网中。 通过 API 服务器 VNet 集成,无需构建专用链接或隧道,即可在 API 服务器与群集节点之间实现网络通信。
限制
- 网络隔离群集在使用 Kubernetes 版本 1.30 或更高版本的 AKS 群集上受支持。
- 对于网络隔离群集,仅支持节点操作系统映像的
NodeImage
自动升级通道 - 当前不支持 Windows 节点池。
- 网络隔离群集尚不支持以下 AKS 群集扩展:
常见问题解答
网络隔离群集与 Azure 防火墙之间有什么区别?
网络隔离群集在整个群集启动过程中不需要任何超出 VNet 的出口流量。 网络隔离群集的出站类型将为 none
或 block
。 如果出站类型设置为 none
,则 AKS 不会为群集设置任何出站连接,允许用户自行配置它们。 如果出站类型设置为 block
,则会阻止所有出站连接。
防火墙通常会在受信任的网络和不受信任的网络(例如 Internet)之间建立屏障。 例如,Azure 防火墙可以根据目标的 FQDN 限制出站 HTTP 和 HTTPS 流量,提供精细的出口流量控制,但同时允许提供对包含 AKS 群集的出站依赖项的 FQDN 的访问权限(这是 NSG 无法做到的)。 例如,你可以将群集的出站类型设置为 userDefinedRouting
,以强制出站流量通过防火墙,然后配置出站流量的 FQDN 限制。
总之,虽然 Azure 防火墙可用于对具有出站请求的群集定义出口限制,但网络隔离群集通过完全消除或阻止出站请求,在默认安全态势方面更进一步。
我是否需要为网络隔离群集设置任何允许列表终结点才能使其正常工作?
群集的创建和启动阶段不需要网络隔离群集的任何出站流量。 AKS 组件和加载项所需的映像是从连接到群集的专用 ACR 中拉取的,而不是通过公共终结点从 Microsoft 工件注册表 (MAR) 中拉取。
在设置网络隔离群集后,如果你想启用需要向其服务终结点发出出站请求的功能或加载项,可以为由 Azure 专用链接支持的服务设置专用终结点。
是否可以手动升级包以升级节点池映像?
不支持基于到包存储库的出口手动升级包。 可以自动升级节点操作系统映像。 网络隔离群集仅支持 NodeImage
节点操作系统自动升级通道。