当前位置: 代码迷 >> 综合 >> Windows 容器在 Rancher 上的发展
  详细解决方案

Windows 容器在 Rancher 上的发展

热度:15   发布时间:2023-12-08 14:35:56.0

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

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

SUSE Rancher 预见到了这一趋势并在开源的 containerd 容器运行时上构建了两个 Kubernetes 发行版——K3s RKE 2RKE 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 1Rancher 用户可为 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 容器提供更加对等的功能。 

RancherWindows 团队一直在开放状态下进行开发(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 (Updates to the Windows Container Runtime support - Microsoft Tech Community)届时客户需要寻找另一个容器运行时解决方案例如 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)

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

  相关解决方案