Windows Server 2022 中 Windows 容器的新增功能
适用于:Windows Server 2022
本文介绍在 Windows Server 2022 中使用 Windows 容器时的一些新功能。 Windows Server 2022 建立在 Windows Server 2019 的强大基础之上,在三个关键主题上引入了许多创新:安全性、Azure 混合集成和管理以及应用程序平台。
平台改进
Server Core 映像大小减小
使用容器时,映像的大小很重要,因为在部署容器化应用程序时,你希望它快速启动。 在容器启动之前,需要在容器主机上下载并提取容器映像层。 在 Windows Server 2022 中,Server Core 映像的大小减小了,这使得容器的启动速度比以前的 Server Core 版本更快。
在 Windows Server 2022 中,正式发布时的 Server Core 容器映像 RTM 层在磁盘上的未压缩大小为 2.76 GB。 与正式发布时的 Windows Server 2019 RTM 层(磁盘上未压缩的大小为 3.47 GB)相比,该层的磁盘占用量减少了 33%。 虽然你不应期望总图像大小会减少 33%,但较小的 RTM 层大小通常意味着总图像大小整体上会更小。
注意
请记住,Windows 容器基础映像分为两层:RTM 层和补丁层,其中包含覆盖在 RTM 层上的 OS 库和二进制文件的最新安全修复程序。 补丁层大小在容器映像支持周期的整个生存期内波动,根据二进制文件中变化的增量逐月增长或缩小。 在新主机上拉取 Windows 容器基础映像时,必须同时拉取两个层。
所有 Windows 容器映像的支持周期更长
现在为所有 Windows Server 2022 映像提供五年主流支持和额外五年的外延支持,包括:Server Core 映像、Nano Server 映像和最近发布的 Windows Server 映像。 此更长的支持周期可确保你有时间实现、使用、升级或迁移(如果适用于你的组织)。 有关详细信息,请参阅 Windows 容器基础映像生命周期和 Windows Server 2022 生命周期。
虚拟化时区
使用 Windows Server 2022,Windows 容器能够独立于主机维护虚拟化时区配置。 传统上用于主机时区的所有配置都已进行虚拟化,并针对每个容器进行了实例化。 要配置容器时区,可以使用 tzutil 命令实用工具或 Set-TimeZone Powershell cmdlet。 要了解详细信息,请参阅虚拟化时区。
重叠网络支持的可伸缩性改进
Windows Server 2022 汇总了在 Windows Server 的最后四个半年频道 (SAC) 版本中进行的多项性能和伸缩改进(但尚未向后移植到 Windows Server 2019)。 下面列出了改进的领域:
- 在一个节点上使用数百个 Kubernetes 服务和 Pod 时的端口耗尽问题现已修复。
- 改进了 Hyper-V 虚拟交换机 (vSwitch) 中的数据包转发性能。
- 提高了 Kubernetes 中容器网络接口 (CNI) 重启的可靠性。
- 改进了主机网络服务 (HNS) 控制平面以及 Windows Server 容器和 Kubernetes 网络使用的数据平面。
要详细了解重叠网络支持的性能和可伸缩性改进,请参阅适用于 Windows 的 Kubernetes 重叠网络。
重叠网络和 l2bridge 网络的直接服务器返回路由
直接服务器返回 (DSR) 是负载均衡系统中非对称网络负载分布的实现,这意味着请求和响应流量使用不同的网络路径。 使用不同的网络路径有助于避免额外的跃点并减少延迟,这不仅可以加快客户端与服务之间的响应时间,还可以从负载均衡器中移除一些额外的负载。 DSR 可以透明地提高应用程序的网络性能,此过程中几乎不需要更改基础结构。
要了解详细信息,请参阅 Kubernetes 中的 Windows 支持简介中的 DSR。
应用程序兼容性
gMSA 改进
你可以将组托管服务帐户 (gMSA) 与 Windows 容器结合使用,以促进 Active Directory (AD) 身份验证。 最初在 Windows Server 2019 中引入时,gMSA 需要将容器主机加入域以从 Active Directory 检索 gMSA 凭据。 在 Windows Server 2022 中,具有未加入域的主机的容器的 gMSA 使用可移植用户标识而不是主机标识来检索 gMSA 凭据,因此,不再需要手动将 Windows 工作器节点加入域。 用户标识在 Kubernetes 中另存为机密。 主机未加入域的容器的 gMSA 提供了一种灵活性,可在不将主机节点加入到域的情况下使用 gMSA 创建容器。
要了解有关 gMSA 改进的详细信息,请参阅为 Windows 容器创建 gMSA。
IPv6 支持
在 Windows 中为 Kubernetes 实现了全面支持 IPv6 双栈的第一步。 平台上基于 L2Bridge 的网络支持 IPv6 双栈。 IPv6 依赖于 Kubernetes 中使用的 CNI,并且还需要 Kubernetes 1.20 版本来启用端到端的 IPv6 支持。 有关详细信息,请参阅 Kubernetes 中的 Windows 支持简介中的 IPv4/IPv6。
改进的 Kubernetes 体验
使用 Calico for Windows 为 Windows 工作器节点提供多子网支持
主机网络服务 (HNS) 已改进,现在允许使用更严格的子网(例如前缀更长的子网)以及每个 Windows 工作器节点使用多个子网。 以前,HNS 将 Kubernetes 容器终结点配置限制为仅使用底层子网的前缀长度。 第一个使用此功能的 CNI 是 Calico for Windows。 有关详细信息,请参阅主机网络服务中的多子网支持。
用于节点管理的 HostProcess 容器
HostProcess 容器是一种新的容器类型,它直接在主机上运行,并扩展了 Windows 容器模型,以支持更广泛的 Kubernetes 群集管理场景。 使用 HostProcess 容器,用户可以打包和分发需要主机访问的管理操作,同时保留容器提供的版本控制和部署方法。 这样一来,你便可将 Windows 容器用于 Kubernetes 中的各种设备插件、存储和网络管理场景。
HostProcess 容器具有以下优点:
- 群集用户不再需要登录并单独配置每个 Windows 节点便可执行管理任务和管理 Windows 服务。
- 用户可以利用容器模型将管理逻辑部署到任意数量的群集中。
- HostProcess 容器可以构建在现有的 Windows Server 2019(或更高版本)基础映像之上,通过 Windows 容器运行时进行管理,并以主机域中可用的任何用户身份运行。
- 通过 HostProcess 容器,可以在 Kubernetes 中更好地管理 Windows 节点。
有关详细信息,请参阅 Windows HostProcess 容器。
Windows 容器工具
Windows Admin Center 改进
容器扩展先前已添加到 Windows Admin Center,以帮助你从 .NET Framework 容器化基于 ASP.Net 的现有 Web 应用程序。 你可以提供静态文件夹或来自开发人员的 Visual Studio 解决方案。
Windows Admin Center 包括以下增强功能:
- 容器扩展包括对 Web 部署文件的附加支持,使你能够从正在运行的服务器中提取应用程序及其配置,然后将应用程序容器化。
- 可以在本地验证映像,然后将该映像推送到 Azure 容器注册表。
- 已为 Azure 容器注册表和 Azure 容器实例添加了基本管理功能。 这样一来,你便可创建和删除注册表、管理映像、启动和停止新容器实例,所有这些操作均从 Windows Admin Center UI 直接完成。
Azure Migrate 应用容器化工具
Azure Migrate 应用容器化是一种端到端解决方案,用于将现有 Web 应用程序容器化并将其移动到 Azure Kubernetes 服务。 它的分步方法提供了评估现有 Web 服务器、创建容器映像、将映像推送到 ACR、创建 Kubernetes 部署,最后将其部署到 AKS 的功能。
有关使用 Azure Migrate 应用容器化工具的详细信息,请参阅以下主题: