本文已發布超過一年。較舊的文章可能包含過時的內容。請檢查頁面中的資訊自發布以來是否已變得不正確。

Kubernetes 1.5:支援生產環境工作負載

今天我們宣布發布 Kubernetes 1.5。此版本緊隨 KubeCon/CloundNativeCon 之後發布,使用者在會中齊聚一堂,分享他們如何在 Kubernetes 上執行應用程式。你們許多人表示有興趣在容器中執行具狀態應用程式,最終目標是在 Kubernetes 上執行所有應用程式。如果您一直在等待嘗試在 Kubernetes 上執行分散式資料庫,或尋找保證具狀態和無狀態應用程式的應用程式中斷 SLO 的方法,此版本為您提供了解決方案。 

StatefulSet 和 PodDisruptionBudget 正在轉為 beta 版。這些功能共同提供了一種更簡單的方式來部署和擴展具狀態應用程式,並使執行叢集操作 (如節點升級) 成為可能,而不會違反應用程式中斷 SLO。

您還將在整個版本中發現可用性改進,從您經常使用的 kubectl 命令列介面開始。對於那些發現難以設定多叢集聯邦的人來說,一個名為「kubefed」的新命令列工具將為您提供幫助。kube-up 中新增了一個廣受歡迎的多區域高可用性 (HA) 主節點設定腳本。 

您是否知道 Kubernetes 社群正在努力支援 Windows 容器?如果您有 .NET 開發人員,請查看此版本中關於 Windows 容器的工作。這項工作尚處於早期 alpha 階段,我們很樂意收到您的回饋。

最後,對於那些對 Kubernetes 內部機制感興趣的人來說,1.5 引入了容器執行階段介面或 CRI,它提供了一個內部 API,將容器執行階段從 kubelet 中抽象出來。執行階段的這種解耦讓使用者可以選擇最適合其需求的執行階段。此版本還引入了容器化的節點一致性測試,以驗證節點軟體是否滿足加入 Kubernetes 叢集的最低要求。

新功能

StatefulSet beta 版(以前稱為 PetSet)允許需要持久身分或每個實例儲存的工作負載在 Kubernetes 上進行建立擴展刪除修復。您可以使用 StatefulSet 來簡化任何具狀態服務的部署,並且儲存庫中提供了教學範例。為了確保永遠不會有兩個具有相同身分識別的 Pod,Kubernetes 節點控制器不再強制刪除無回應節點上的 Pod。相反,它會等待直到以幾種方式之一確認舊 Pod 已終止:當 kubelet 回報並確認舊 Pod 已終止時自動終止;當叢集管理員刪除節點時自動終止;或當資料庫管理員確認強制刪除舊 Pod 是安全的時終止。現在,如果使用者嘗試透過 CLI 強制刪除 Pod,系統會發出警告。對於將從 PetSet 遷移到 StatefulSet 的使用者,請遵循升級指南

PodDisruptionBudget beta 版是一個 API 物件,用於指定在任何時間都必須處於運作狀態的 Pod 集合的最小數量或最小百分比複本。透過 PodDisruptionBudget,應用程式部署者可以確保自願逐出 Pod 的叢集操作永遠不會同時關閉太多 Pod,以至於導致資料遺失、中斷或無法接受的服務降級。在 Kubernetes 1.5 中,「kubectl drain」命令支援 PodDisruptionBudget,允許安全地排空節點以進行維護活動,並且很快也將被節點升級和叢集自動擴展器(在移除節點時)使用。這對於基於仲裁的應用程式可能很有用,以確保正在執行的複本數量永遠不會低於仲裁所需的數量,或者對於 Web 前端,以確保服務負載的複本數量永遠不會低於特定百分比。

Kubefed alpha 版是一個新的命令列工具,可協助您管理聯邦叢集,讓您可以輕鬆部署新的聯邦控制平面,並從現有聯邦新增或移除叢集。叢集聯邦的新功能還包括將 ConfigMaps alpha 版和 DaemonSets alpha 版和 部署 alpha 版新增至聯邦 API,讓您可以從單一端點跨多個叢集建立、更新和刪除這些物件。

HA Masters alpha 版提供了使用 kube-up/kube-down 腳本在 GCE 上建立和刪除具有高可用性(複寫)主節點的叢集的能力。允許設定區域分散式 HA 主節點,每個區域至少有一個 etcd 複本、每個區域至少有一個 API 伺服器,以及跨區域分散的排程器和控制器管理員等主節點選取元件。

Windows 伺服器容器 alpha 版提供了對 Windows Server 2016 節點和排程 Windows 伺服器容器的初始支援。 

容器執行階段介面 (CRI) alpha 版引入了 v1 CRI API,以允許可插拔的容器執行階段;實驗性的 docker-CRI 整合已準備好進行測試和回饋。

節點一致性測試 beta 版是一個容器化測試框架,為節點提供系統驗證和功能測試。該測試驗證節點是否滿足 Kubernetes 的最低要求;通過測試的節點有資格加入 Kubernetes。節點一致性測試可在 gcr.io/google_containers/node-test:0.2 取得,供使用者驗證節點設定。

這些只是我們今年最後一個版本中的一些重點。如需完整清單,請造訪發行說明。 

可用性
Kubernetes 1.5 可在此處 GitHub 和透過 get.k8s.io 下載。若要開始使用 Kubernetes,請嘗試新的互動式教學課程之一。別忘了在假期前試用 1.5! 

使用者採用
自 GA 以來已有一年半的時間,Kubernetes 使用者採用率持續超出預期。在 Kubernetes 上執行生產工作負載的組織包括世界上最大的公司、年輕的初創公司以及介於兩者之間的一切公司。由於 Kubernetes 是開放的並且可以在任何地方執行,因此我們看到在各種平台上都採用了它;Pokémon Go (Google Cloud)、Ticketmaster (AWS)、SAP (OpenStack)、Box (裸機) 以及混合搭配上述內容的混合環境。以下是一些使用者重點

  • Yahoo! JAPAN -- 建構了一個自動化工具鏈,使其可以輕鬆地從程式碼推送轉移到部署,同時在 Kubernetes 上執行 OpenStack。 
  • Walmart -- 將把 Kubernetes 與 OneOps 結合使用,以管理其令人難以置信的配送中心,從而在交付速度、系統運作時間和資產利用率方面為其團隊提供幫助。 
  • Monzo -- 一家歐洲新創公司,致力於建立行動優先銀行,正在使用 Kubernetes 為其核心平台提供支援,該平台可以處理極高的效能和一致性要求。

Kubernetes 生態系統
Kubernetes 生態系統正在快速成長,包括 Microsoft 對 Azure Container Service 中 Kubernetes 的支援、VMware 將 Kubernetes 整合到其 Photon Platform 中,以及 Canonical 對 Kubernetes 的商業支援。此外,還有三十多個已為 Kubernetes 使用者提供商業服務的 技術與服務合作夥伴。 

CNCF 最近宣布了 Kubernetes 受管理服務供應商 (KMSP) 計畫,這是一層預先認證的服務供應商,他們在協助企業成功採用 Kubernetes 方面擁有豐富經驗。為了進一步提高 Kubernetes 的知識和意識,Linux 基金會與 CNCF 合作,將開發和營運 Kubernetes 培訓和認證計畫 -- 第一個設計的課程是 Kubernetes 基礎知識

社群速度
在過去的三個月中,我們看到一百多位新的貢獻者加入了該專案,並推送了約 5,000 次提交,透過將核心專案的總數提高到 1,000 多位貢獻者和 40,000 多次提交,達到了新的里程碑。這種令人難以置信的勢頭只有透過開放式設計、對新想法持開放態度以及授權開放社群歡迎新進和資深貢獻者才有可能實現。非常感謝 1.5 的發布團隊 -- Google 的 Saad Ali、Mirantis 的 Davanum Srinivas 和 CoreOS 的 Caleb Miles,感謝他們為 1.5 版本的發布所做的工作。

在線下,可以在世界各地眾多與 Kubernetes 相關的 聚會之一中找到社群。社群的實力和規模在 CloudNativeCon/KubeCon Seattle 擁擠的大廳中可見一斑(錄製的使用者演講在此)。下一個 CloudNativeCon + KubeCon 將於 2017 年 3 月 29 日至 30 日在柏林舉行,請務必取得您的票並在 12 月 16 日的 CFP 截止日期之前提交您的演講

準備好開始貢獻了嗎?在我們的每週社群會議上分享您的聲音。 

感謝您的貢獻與支持!