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

Kubernetes 1.5:支援生產工作負載

今天我們宣佈釋出 Kubernetes 1.5。此版本緊隨 KubeCon/CloudNativeCon 之後,在那裡使用者齊聚一堂,分享他們如何在 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 上建立擴充套件刪除修復具有持久身份或每例項儲存的工作負載。您可以使用 StatefulSets 來簡化任何有狀態服務的部署,並且儲存庫中提供了教程示例。為了確保永遠不會有兩個具有相同身份的 Pod,Kubernetes 節點控制器不再強制刪除無響應節點上的 Pod。相反,它會等待舊 Pod 以幾種方式之一被確認死亡:當 kubelet 報告並確認舊 Pod 已終止時自動;當叢集管理員刪除節點時自動;或當資料庫管理員透過強制刪除舊 Pod 確認可以安全進行時。現在,如果使用者嘗試透過 CLI 強制刪除 Pod,他們將收到警告。對於將從 PetSets 遷移到 StatefulSets 的使用者,請遵循升級指南

PodDisruptionBudget Beta 是一個 API 物件,它指定了在任何時候都必須執行的 Pod 集合的最小數量或最小百分比副本。透過 PodDisruptionBudget,應用程式部署人員可以確保自願驅逐 Pod 的叢集操作永遠不會同時關閉太多 Pod,從而導致資料丟失、中斷或不可接受的服務降級。在 Kubernetes 1.5 中,“kubectl drain”命令支援 PodDisruptionBudget,允許安全地排空節點以進行維護活動,並且它很快也將被節點升級和叢集自動擴縮器(在移除節點時)使用。這對於基於仲裁的應用程式很有用,以確保執行的副本數量永遠不會低於仲裁所需的數量,或者對於 Web 前端,以確保服務負載的副本數量永遠不會低於某個百分比。

Kubefed Alpha 是一個新的命令列工具,可幫助您管理聯邦叢集,使其易於部署新的聯邦控制平面以及從現有聯邦中新增或移除叢集。叢集聯邦中還新增了 ConfigMaps Alpha、DaemonSets Alpha 和 Deployments Alpha 到聯邦 API,允許您從單個端點跨多個叢集建立、更新和刪除這些物件。

HA Masters Alpha 提供了使用 kube-up/kube-down 指令碼在 GCE 上建立和刪除具有高可用性(複製)主節點的叢集的能力。允許設定區域分散式 HA 主節點,每個區域至少一個 etcd 副本,每個區域至少一個 API 伺服器,以及排程器和控制器管理器等主節點選舉元件分佈在不同區域。

Windows Server 容器 Alpha 提供了對 Windows Server 2016 節點和排程 Windows Server 容器的初步支援。 

容器執行時介面 (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。 
  • 沃爾瑪 —— 將使用 Kubernetes 和 OneOps 來管理其令人難以置信的配送中心,幫助其團隊提高交付速度、系統正常執行時間和資產利用率。  
  • Monzo —— 一家歐洲初創公司,正在構建一家移動優先銀行,它正在使用 Kubernetes 來為其核心平臺提供動力,該平臺能夠處理極端的效能和一致性要求。

Kubernetes 生態系統
Kubernetes 生態系統正在迅速發展,包括 Microsoft 在 Azure 容器服務中對 Kubernetes 的支援,VMware 在其 Photon 平臺中整合 Kubernetes,以及 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 擁擠的會場中清晰可見(錄製的講座在此處)。下一次 CloudNativeCon + KubeCon 將於 2017 年 3 月 29-30 日在柏林舉行,請務必在 CFP 截止日期 12 月 16 日之前購買門票並提交您的演講

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

感謝您的貢獻和支援!