适用于 Azure Kubernetes 服务 (AKS) 上的 Windows 容器的最佳做法
在 AKS 中,你可以创建在节点上运行 Linux 或 Windows Server 作为操作系统 (OS) 的节点池。 Windows Server 节点可以运行本机 Windows 容器应用程序,例如 .NET Framework。 Linux 操作系统和 Windows 操作系统具有不同的容器支持和配置注意事项。 有关详细信息,请参阅 [Kubernetes 中的 Windows 容器注意事项][windows-vs-linux]。
本文概述了在 AKS 上运行 Windows 容器的最佳做法。
创建新的 AKS 群集时,Azure 平台默认创建 Linux 节点池。 此节点池包含系统服务,群集需要这些服务才能正常工作。 Azure 还创建和管理从用户抽象出来的控制平面,这意味着你不会暴露于托管主要控制平面组件的节点的底层操作系统。 建议在默认 Linux 节点池上运行至少两个节点,以确保群集的可靠性和性能。 除非删除整个群集,否则将无法删除默认的 Linux 节点池。
在某些情况下,如果计划在 AKS 群集上运行基于 Windows 的工作负载,应考虑部署 Linux 节点池,例如:
- 如果要运行 Linux 和 Windows 工作负载,可以在同一群集中部署 Linux 节点池和 Windows 节点池。
- 如果要部署基于 Linux 的基础设施相关组件(例如 NGINX),则需要一个 Linux 节点池和 Windows 节点池。 对于开发和测试场景,可以使用控制平面节点。 对于生产工作负载,建议部署单独的 Linux 节点池以确保可靠性和性能。
你可能希望将现有应用程序容器化并使用 AKS 上的 Windows 运行它们。 在开始容器化过程之前,请务必了解应用程序的体系结构和依赖项。 有关详细信息,请参阅使用 Windows 容器容器化现有应用程序。
最佳实践指南
Windows Server 2022 提供更高的安全性和性能,是建议用于 AKS 上 Windows 节点池的操作系统。 AKS 使用 Windows Server 2022 作为主机操作系统版本,并且仅支持进程隔离。
AKS 支持 Windows Server 操作系统的两个选项:长期服务渠道版本和适用于容器的 Windows Server 年度通道。
AKS 支持长期服务渠道版本,包括 Windows Server 2022 和 Windows Server 2019。 此渠道每三年发布一次,支持五年。 使用长期支持的客户应使用 Windows Server 2022。
AKS 使用 Windows Server 2019 和 Windows Server 2022 作为主机 OS 版本,并且仅支持进程隔离。 AKS 不支持其他版本的 Windows Server 构建的容器映像。 有关详细信息,请参阅 Windows 容器版本兼容性。
Windows Server 2022 是 Kubernetes 1.25 及更高版本的默认操作系统。 在 Kubernetes 版本 1.32 达到生命周期终点后,Windows Server 2019 将停用。 在 Kubernetes 版本 1.34 达到生命周期终点后,Windows Server 2022 将停用。 有关详细信息,请参阅 AKS 发行说明。 若要了解最新的 Windows Server OS 版本,并了解有关 AKS 上计划支持的路线图的详细信息,请参阅我们的 AKS 公共路线图。
最佳实践指南
使用网络策略保护 Pod 之间的流量。 Windows 支持 Azure 网络策略管理器和 Calico 网络策略。 有关详细信息,请参阅网络策略引擎之间的差异:Cilium、Azure NPM 和 Calico。
管理 Pod 之间的流量时,应该应用最低特权原则。 可以通过 Kubernetes 中的网络策略功能定义和强制集群中 Pod 之间的流入量和流出量规则。 有关详细信息,请参阅在 AKS 中使用网络策略保护 Pod 之间的流量。
使用 Calico 网络策略的 AKS 群集上的 Windows Pod 默认启用浮动 IP。
请务必使 Windows 环境保持最新状态,以确保系统具有最新的安全更新、功能集和合规性要求。 在 AKS 等 Kubernetes 环境中,需要维护 Kubernetes 版本、Windows 节点以及 Windows 容器映像和 Pod。
作为托管 Kubernetes 服务,AKS 提供了将群集升级到最新 Kubernetes 版本所需的工具。 有关详细信息,请参阅升级 AKS 群集。
AKS 上的 Windows 节点遵循每月更新计划。 每个月,AKS 都会创建一个新的 VHD,其中包含 Windows 节点池的最新可用更新。 VHD 包括主机映像、最新的 Nano Server 映像、最新的服务器核心映像和容器。 建议对 Windows 节点池执行每月更新,以确保节点具有最新的安全修补程序。 有关详细信息,请参阅升级 AKS 节点映像。
备注
Windows 系统上的升级包括 OS 版本升级和每月节点 OS 更新。
可以使用 AKS 发布跟踪器 和 AKS 发行说明及时了解每月发布的可用情况。
Windows 按照一定的节奏发布新版本操作系统,包括 Windows Server 2019 和 Windows Server 2022。 升级 Windows 节点 OS 版本时,请确保 Windows 容器映像版本与 Windows 容器主机版本匹配,并且节点池只有一个版本的 Windows Server。
若要升级 Windows 节点 OS 版本,需要完成以下步骤:
- 使用新的 Windows Server 版本创建新的节点池。
- 使用新的 Windows 容器映像将工作负载部署到新的节点池。
- 解除旧节点池的授权。
有关详细信息,请参阅升级 AKS上的 Windows Server 工作负载。
备注
Windows 宣布推出新的Windows Server 容器年度通道,该通道支持 Windows 节点和容器的可移植性和混合版本。 AKS 尚不支持此功能。
若要跟踪 AKS 功能计划,请参阅公共 AKS 路线图。
若要详细了解 AKS 上的 Windows 容器,请参阅以下资源:
- 了解如何在 AKS上部署、管理和监视 Windows 容器。
- 在 Windows 容器 GitHub 存储库中提出问题或提供反馈。
- 查看适用于 AKS 上的 Windows 的第三方合作伙伴解决方案。