使用 Azure CNI 和站点到站点 VPN VNet 时如何从 Pod 子网中拆分 AKS 群集子网

How to split AKS cluster subnet from pod subnet when using Azure CNI and a site-to-site VPN VNet

我的目标是 运行 一个 AKS 集群,它可以被我的本地网络访问,其中 pods 可以访问我的本地网络。

我有一个通过站点到站点 VPN 连接到 Azure 的本地网络。此站点到站点 VPN 的子网是 Azure 中的 10.10.6.0/24 到内部部署的 10.9.6.0/24。此 VNet 的 DNS 服务器配置为我的本地域控制器。

我已经使用此 VNet 设置了一个 AKS 集群,但令我惊讶的是,这意味着此集群中的每个 pod 都获得了我的 VNet 的 IP 地址。根据文档,这是预期的行为,但我并没有真正预料到这一点,这并不是我真正想要的。具有两个副本和一个集群 IP 或内部负载均衡器的单个站点占用了我宝贵的 3 个 IP 地址。我只想让集群IP得到一个子网。

我理解背后的原因,因为显然我的 pod 需要能够通过 DNS 配置访问我的本地网络,但我想知道是否有办法将集群子网和 pod 子网分开,以便我没有用尽我的 VNet 中可分配的 IP 地址的数量?就像使用 kubenet 而不是 Azure CNI 时一样。

理论上我可以将我的站点到站点 VNet 子网扩展到 /16 范围,但我更愿意在再次更改我的整个防火墙配置之前先寻找 AKS 解决方案。

有办法解决这个问题吗?

解决这个问题的唯一方法是使用 kubenet。据我所知,AKS 引擎不允许拆分 pods 和工作节点 ip 地址。