Windows 容器在 Rancher 上的發展

容器運行時在雲原生和 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章