首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Windows 容器在 Rancher 上的未来发展

本文将介绍基于 RKE 1 的 Windows 容器演进和基于 RKE 2 的 Windows 容器最新进展,并探讨客户将 Windows 容器工作负载迁移到 RKE 2 时需要采取的措施。

容器运行时在云原生和 Rancher 上的演进

使用体积比 Docker 更小的容器运行时正成为云原生生态系统的发展趋势。这种转变为群集运营商带来了新的选择,同时也要求群集运营商重新评估自己的 Kubernetes 容器运行时。

SUSE Rancher 预见到了这一趋势,并在开源的 containerd 容器运行时上构建了两个 Kubernetes 发行版——K3s 和 RKE 2。RKE 2 是全面兼容的 Kubernetes 发行版,它基于 K3s 构建,更侧重于安全性和合规性。 

基于 containerd 的 RKE2 是 Rancher 管理 Windows 容器的未来趋势。

过渡到 RKE 2 能够提升安全性,为使用 Windows 容器的客户提供更丰富的功能,提升 Windows 与 Linux 容器的功能对等性,并支持 Linux 与 Windows 工作负载在 Rancher 环境下的并行动态部署。 

本文将介绍基于 RKE 1 的 Windows 容器的演进和基于 RKE 2 的 Windows 容器最新进展,并探讨客户将 Windows 容器工作负载迁移到 RKE 2 时需要考虑的因素和采取的措施。

RKE 1 上的 Windows 容器演进

Rancher 2.3 版本首次通过 RKE 1 支持 Windows 容器 (https://github.com/rancher/rancher/releases/tag/v2.3.0)。 

在 RKE 1 上,Windows 容器采用 Docker EE 运行时,该运行时通过 Microsoft 和 Docker 的合作已内置到 Windows Server 2016 及更高的版本中。 

通过 RKE 1,Rancher 用户可为 Windows 工作负载指定一个集群,作为自定义集群配置的一部分。然后,将污点和容忍度应用于节点上,从而将 Windows 工作负载调度到合适的节点上。 

这些特殊的 Windows 集群无法转换为 Linux 集群,也无法轻松运行 Linux 和 Windows 混合工作负载。 

这是在 Rancher 上支持 Windows 容器重要的第一步,但对于 Windows 和 Linux 节点同时运行的混合操作系统生态,这种方法有很多局限性。 

这就需要一个新的方法。

在 RKE 2 上运行 Windows 容器

Rancher 2.6.0 技术预览版首次在 RKE 2 上推出了 Windows 容器 (https://github.com/rancher/rancher/releases/tag/v2.6.0)。 

RKE 2 上的 Windows 容器由 containerd 运行时和 Calico CNI 提供支持,首次为 Rancher 上的 Windows 容器启用网络策略。 

RKE 2 上的 Windows 容器还推出了一种新的集群配置架构模型,适用于混合 Linux 和 Windows 集群。这种新模型放弃了特定于 Windows 的集群以及对污点和容忍度的使用限制。 

RKE 2 上的 Windows 容器采用了更具适应性、更动态的集群配置方法。RKE 2 采用 nodeSelector 标签在适当的 OS 节点上调度工作负载,配置时不再需要声明 Windows 集群,也不仅限于运行 Windows 工作负载。 

通过这种新模型,用户能够更灵活地将 Linux 和 Windows 工作负载一起部署到同一个集群上。例如,在单个集群中,用户现在可以在 Windows 节点上部署完整的 .NET 框架应用,并在 Linux 节点上部署 SQL Server,而且规划和配置更加简单。

RKE 2 上的 Windows 容器发展

在 Rancher 2.6.4 版本(Rancher 的最新版本)中,RKE 2 上的 Windows 容器也将 GA,它将超越 RKE 1 上的 Windows 容器,为 Rancher 上的 Windows 和 Linux 容器提供更加对等的功能。 

Rancher 的 Windows 团队一直在开放状态下进行开发(https://github.com/rancher/windows/projects),过程完全透明。 

RKE 2 上的 Windows 容器支持 Windows Server 2019 和 Windows Server 2022,这两项都是 Windows Server 的 LTSC 分支。 

对于 RKE 1 上的 Windows 容器,用户升级时需考虑许多重要因素。

弃用 Windows Server 上的 Docker EE

自 2022 年 9 月起,Microsoft 将不再支持 Docker EE (https://techcommunity.microsoft.com/t5/containers/updates-to-the-windows-container-runtime-support/ba-p/2788799)。届时,客户需要寻找另一个容器运行时解决方案,例如 Rancher 提供的基于 containerd RKE 2。 

一直到 2022 年 9 月,Microsoft 都将为 Mirantis 容器运行时提供临时支持,作为 Docker EE 的临时替代。9 月之后,客户需要签署 Mirantis 容器运行时相关付费协议。这意味着 RKE 1 上的 Windows 容器用户需要支付额外的费用。对于在 Mirantis 容器运行时上部署的工作负载,Rancher 无法提供完整的全栈支持。 

SUSE Rancher 建议用户开始向自带 containerd 运行时的基于 RKE 2 的 Windows 容器过渡。客户应尽快开始在 2.6.0+ 版本中对基于 RKE2 的 Windows 容器进行工作负载测试,以免 2022 年 9 月过后还需要单独购买 Mirantis 支持协议。 

在技术预览阶段,如果用户在测试 RKE 2 上的 Windows 容器时遇到问题,可在 Rancher Windows GitHub 中提出 (https://github.com/rancher/windows/issues)。 

2022 年 3 月底该功能 GA 后,官方将为 RKE 2 上的 Windows 容器提供支持,但客户现在就可开始测试。

从 RKE 1 升级到 RKE 2

RKE 1 中采用的是配置 Windows 专用集群的方法,而 RKE 2 则采用了更为自由的混合操作系统集群,因此,RKE 1 上的 Windows 容器无法直接迁移到 RKE 2。 

SUSE Rancher 建议,客户在 RKE 2 技术预览版中测试 Windows 容器上的工作负载时,需开始规划使用 Fleet 重构 RKE 2 上的 Windows 工作负载 (https://fleet.rancher.io/)。Fleet 是 Rancher 的 GitOps 解决方案,现在可以直接集成到 Rancher 中,并支持 Windows 容器。 

了解更多,请参考:https://github.com/rancher/windows/issues/150

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/EErL5WzI7IWIz51xJh2W
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券