使用方案
现已确立用于在决策中进行权衡的利弊点,现在可以在一些方案中进行应用。
开发
在有限的 IP 地址空间中开发多种功能可能比较困难。 Kubenet 在设计时考虑到了节省地址空间,因此是开发或试验环境的最佳选择。
如果以下一项或多项不成立,则考虑选择使用 Azure CNI 网络的开发环境:
- 实验性功能或开发中的功能不需要 Azure 容器实例的虚拟节点提供的快速缩放功能。
- 可接受环境中由用于 Pod 通信的额外跃点导致的轻微延迟。
- 可接受在开发环境中维护路由表和 UDR 的操作开销。
- 开发环境仅支持基于 Linux 的节点池。
通过使用 kubenet,每当创建 AKS 群集时,Azure 平台都会自动创建和配置虚拟网络资源。 也可以手动创建和配置虚拟网络资源,并在创建时将其附加到这些资源。 但不支持对 Azure 托管的网络资源进行更改。
生产
请记住,有几个因素会阻止 kubenet 成为可接受的适用于生产的网络选项。 Kubenet 的优势是可快速在开发中建立小型应用程序的原型并进行测试。
而 Azure CNI 因其可配置的网络选项更适合生产环境,这些选项包括:
- 延迟降低。
- 通过 Azure 容器实例的虚拟节点实现快速缩放功能。
- 可直接寻址的 Pod 简化了与群集外部服务的连接。
- 支持高级网络拓扑和相关功能。
如果用例需要一项或多项功能,还可以选择将 Azure CNI 用于开发环境。 例如,如果需要基于 Windows Server 的节点,则必须将 Azure CNI 用于开发和生产群集。 请记住,此选择需要做更多的网络拓扑规划,这需要专家的参与。