Kubernetes 1.9 對 Windows Server 容器提供 Beta 版本支持

隨着 Kubernetes v1.9 的發佈,我們確保所有人在任何地方都能正常運行 Kubernetes 的使命前進了一大步。我們的 Beta 版本對 Windows Server 的支持進行了升級,並且在 Kubernetes 和 Windows 平臺上都提供了持續的功能改進。爲了在 Kubernetes 上運行許多特定於 Windows 的應用程序和工作負載,SIG-Windows 自2016年3月以來一直在努力,大大擴展了 Kubernetes 的實現場景和企業適用範圍。

各種規模的企業都在 .NET 和基於 Windows 的應用程序上進行了大量投資。如今許多企業產品組合都包含 .NET 和 Windows,Gartner 聲稱 80% 的企業應用都在 Windows 上運行。根據 StackOverflow Insights,40% 的專業開發人員使用 .NET 編程語言(包括 .NET Core)。

但爲什麼這些信息都很重要?這意味着企業既有傳統的,也有新生的雲(microservice)應用程序,利用了大量的編程框架。業界正在大力推動將現有/遺留應用程序現代化到容器中,使用類似於“提升和轉移”的方法。同時,也能靈活地向其他 Windows 或 Linux 容器引入新功能。容器正在成爲打包、部署和管理現有程序和微服務應用程序的業界標準。IT 組織正在尋找一種更簡單且一致的方法來跨 Linux 和 Windows 環境進行協調和管理容器。Kubernetes v1.9 現在對 Windows Server 容器提供了 Beta 版本支持,使之成爲策劃任何類型容器的明確選擇。

特點

Kubernetes 中對 Windows Server 容器的 Alpha 支持是非常有用的,尤其是對於概念項目和可視化 Kubernetes 中 Windows 支持的路線圖。然而,Alpha 版本有明顯的缺點,並且缺少許多特性,特別是在網絡方面。SIG Windows、Microsoft、Cloudbase Solutions、Apprenda 和其他社區成員聯合創建了一個全面的 Beta 版本,使 Kubernetes 用戶能夠開始評估和使用 Windows。

Kubernetes 對 Windows 服務器容器的一些關鍵功能改進包括:

  • 改進了對 Pod 的支持!Pod 中多個 Windows Server 容器現在可以使用 Windows Server 中的網絡隔離專區共享網絡命名空間。此功能中 Pod 的概念相當於基於 Linux 的容器
  • 可通過每個 Pod 使用單個網絡端點來降低網絡複雜性
  • 可以使用 Virtual Filtering Platform(VFP)的 Hyper-v Switch Extension(類似於 Linux iptables)達到基於內核的負載平衡
  • 具備 Container Runtime Interface(CRI)的 Pod 和 Node 級別的統計信息。可以使用從 Pod 和節點收集的性能指標配置 Windows Server 容器的 Horizontal Pod Autoscaling
  • 支持 kubeadm 命令將 Windows Server 的 Node 添加到 Kubernetes 環境。Kubeadm 簡化了 Kubernetes 集羣的配置,通過對 Windows Server 的支持,您可以在您的基礎配置中使用單一的工具部署 Kubernetes
  • 支持 ConfigMaps, Secrets, 和 Volumes。這些是非常關鍵的特性,您可以將容器的配置從實施體系中分離出來,並且在大部分情況下是安全的
    然而,kubernetes 1.9 windows 支持的最大亮點是網絡增強。隨着 Windows 服務器 1709 的發佈,微軟在操作系統和 Windows Host Networking Service(HNS)中啓用了關鍵的網絡功能,這爲創造大量與 Kubernetes 中的 Windows 服務器容器一起工作的 CNI 插件鋪平了道路。Kubernetes 1.9 支持的第三層路由和網絡覆蓋插件如下所示:
  1. 上游 L3 路由 - 上游 ToR 中配置的 IP 路由
  2. Host-Gateway - 在每個主機上配置的 IP 路由
  3. 具有 Overlay 的 Open vSwitch(OVS)和 Open Virtual Network(OVN) - 支持 STT 和 Geneve 的 tunneling 類型 您可以阅读更多有关 配置、設置和運行時功能 的信息,以便在 Kubernetes 中爲您的網絡堆棧做出明智的選擇。

如果您需要繼續在 Linux 中運行 Kubernetes Control Plane 和 Master Components,現在也可以將 Windows Server 作爲 Kubernetes 中的一個節點引入。對一個社區來說,這是一個巨大的里程碑和成就。現在,我們將會在 Kubernetes 中看到 .NET,.NET Core,ASP.NET,IIS,Windows 服務,Windows 可執行文件以及更多基於 Windows 的應用程序。

接下來還會有什麼

這個 Beta 版本進行了大量工作,但是社區意識到在將 Windows 支持作爲生產工作負載發佈爲 GA(General Availability)之前,我們需要更多領域的投資。2018年前兩個季度的重點關注領域包括:

  1. 繼續在網絡領域取得更多進展。其他 CNI 插件正在開發中,並且即將完成
  • Overlay - win-Overlay(vxlan 或 IP-in-IP 使用 Flannel 封裝)
  • Win-l2bridge(host-gateway)
  • 使用雲網絡的 OVN - 不再依賴 Overlay
  • 在 ovn-Kubernetes 中支持 Kubernetes 網絡策略
  • 支持 Hyper-V Isolation
  • 支持有狀態應用程序的 StatefulSet 功能
  • 生成適用於任何基礎架構以及跨多公共雲提供商(例如 Microsoft Azure,Google Cloud 和 Amazon AWS)的安裝工具和文檔
  • SIG-Windows 的 Continuous Integration/Continuous Delivery(CI/CD)基礎結構
  • 可伸縮性和性能測試 儘管我們尚未承諾正式版的具體時間線,但估計 SIG-Windows 將於2018年上半年正式發佈。

加入我們

隨着我們在 Kubernetes 的普遍可用性方向不斷取得進展,我們歡迎您參與進來,貢獻代碼、提供反饋,將 Windows 服務器容器部署到 Kubernetes 集羣,或者乾脆加入我們的社區。

謝謝大家,

Michael Michael (@michmike77)
SIG-Windows 領導人
Apprenda 產品管理高級總監