Kubernetes 1.17:穩定
我們很高興地宣佈Kubernetes 1.17的釋出,這是我們2019年的第四個也是最後一個版本!Kubernetes v1.17包含22項增強功能:其中14項已升級到穩定版,4項正在進入beta版,另有4項正在進入alpha版。
主要主題
雲提供商標籤普遍可用
雲提供商標籤早在v1.2版本中作為beta功能新增,v1.17版本中已普遍可用。
卷快照進入Beta階段
Kubernetes卷快照功能現已在Kubernetes v1.17中進入beta階段。它在Kubernetes v1.12中作為alpha功能引入,隨後在Kubernetes v1.13中釋出了第二個帶有重大更改的alpha版本。
CSI 遷移 Beta
Kubernetes 樹記憶體儲外掛到容器儲存介面(CSI)的遷移基礎設施現已在 Kubernetes v1.17 中進入 Beta 階段。CSI 遷移功能於 Kubernetes v1.14 中作為 Alpha 功能引入。
雲提供商標籤普遍可用
當建立節點和卷時,會根據 Kubernetes 叢集底層雲提供商應用一組標準標籤。節點會獲得一個例項型別標籤。節點和卷都會獲得兩個描述資源在雲提供商拓撲中位置的標籤,通常按區域和可用區組織。
Kubernetes元件使用標準標籤來支援某些功能。例如,排程器將確保Pod被放置在與它們所請求的卷相同的區域;當排程屬於某個部署的Pod時,排程器將優先將它們分散到不同的區域。您還可以在Pod規格中使用這些標籤來配置節點親和性等。標準標籤允許您編寫在不同雲提供商之間可移植的Pod規格。
這些標籤在此版本中已達到普遍可用狀態。Kubernetes元件已更新,可以填充 GA 和 beta 標籤並對兩者做出反應。然而,如果您在 pod 規格中使用 beta 標籤來實現節點親和性等功能,或者在自定義控制器中使用 beta 標籤,我們建議您開始將其遷移到新的 GA 標籤。您可以在此處找到新標籤的文件
卷快照進入Beta階段
Kubernetes 卷快照功能現已在 Kubernetes v1.17 中進入 beta 階段。它在 Kubernetes v1.12 中作為 alpha 功能引入,在 Kubernetes v1.13 中釋出了第二個帶有重大更改的 alpha 版本。本文總結了 beta 版本中的更改。
什麼是卷快照?
許多儲存系統(例如 Google Cloud Persistent Disks、Amazon Elastic Block Storage 以及許多本地儲存系統)都提供建立持久卷“快照”的功能。快照代表了卷的即時副本。快照可以用於供應新卷(預填充快照資料)或將現有卷恢復到之前的狀態(由快照表示)。
為什麼要將卷快照新增到 Kubernetes?
Kubernetes 卷外掛系統已經提供了強大的抽象,可以自動化塊儲存和檔案儲存的供應、附加和掛載。
支撐所有這些功能的是 Kubernetes 的工作負載可移植性目標:Kubernetes 旨在在分散式系統應用程式和底層叢集之間建立一個抽象層,使得應用程式可以不依賴於其執行叢集的特定細節,並且應用程式部署無需“叢集特定”知識。
Kubernetes Storage SIG 認為快照操作對於許多有狀態工作負載來說是關鍵功能。例如,資料庫管理員可能希望在開始資料庫操作之前對資料庫捲進行快照。
透過提供一種在 Kubernetes API 中觸發快照操作的標準方式,Kubernetes 使用者現在可以處理此類用例,而無需繞過 Kubernetes API(並手動執行儲存系統特定的操作)。
相反,Kubernetes 使用者現在可以以叢集無關的方式將快照操作整合到他們的工具和策略中,並且可以安心地知道它將適用於任意 Kubernetes 叢集,而無論底層儲存如何。
此外,這些 Kubernetes 快照原語可作為基本構建塊,解鎖為 Kubernetes 開發高階企業級儲存管理功能的能力,包括應用程式或叢集級別的備份解決方案。
您可以在關於將 CSI 卷快照發布到 beta 版本的部落格文章中閱讀更多內容。
CSI 遷移 Beta
我們為什麼要將樹內外掛遷移到 CSI?
在 CSI 之前,Kubernetes 提供了一個強大的卷外掛系統。這些卷外掛是“樹內”的,這意味著它們的程式碼是核心 Kubernetes 程式碼的一部分,並隨核心 Kubernetes 二進位制檔案一起釋出。然而,為 Kubernetes 新增新卷外掛的支援是一項挑戰。希望為 Kubernetes 新增其儲存系統支援(甚至修復現有卷外掛中的錯誤)的供應商被迫與 Kubernetes 釋出流程保持一致。此外,第三方儲存程式碼導致核心 Kubernetes 二進位制檔案的可靠性和安全問題,而且這些程式碼通常難以(在某些情況下甚至不可能)由 Kubernetes 維護者進行測試和維護。在 Kubernetes 中使用容器儲存介面解決了這些主要問題。
隨著更多 CSI 驅動程式的建立並投入生產,我們希望所有 Kubernetes 使用者都能從 CSI 模型中受益。然而,我們不想透過破壞現有的通用儲存 API 來強制使用者進行工作負載/配置更改。前進的道路很明確——我們必須用 CSI 替換“樹內外掛”API 的後端。什麼是 CSI 遷移?
CSI 遷移工作旨在用相應的 CSI 驅動程式替換現有的樹記憶體儲外掛,例如 kubernetes.io/gce-pd
或 kubernetes.io/aws-ebs
。如果 CSI 遷移正常工作,Kubernetes 終端使用者不應注意到任何差異。遷移後,Kubernetes 使用者可以繼續使用現有介面提供的樹記憶體儲外掛的所有功能。
當 Kubernetes 叢集管理員更新叢集以啟用 CSI 遷移時,現有的有狀態部署和工作負載將繼續像往常一樣執行;然而,在幕後,Kubernetes 將所有儲存管理操作(以前針對樹內驅動程式)的控制權交給 CSI 驅動程式。
Kubernetes 團隊一直努力確保儲存 API 的穩定性,並承諾提供平滑的升級體驗。這涉及對所有現有功能和行為進行細緻的核算,以確保向後相容性和 API 穩定性。您可以將其想象成在賽車高速行駛時更換車輪。
您可以在部落格文章中閱讀更多關於CSI 遷移進入 beta 階段的內容。
其他更新
升級到穩定版 💯
- 按條件汙染節點
- 可配置的 Pod 程序名稱空間共享
- 由 kube-scheduler 排程 DaemonSet Pod
- 動態最大卷計數
- Kubernetes CSI 拓撲支援
- 在 SubPath Mount 中提供環境變數擴充套件
- 自定義資源的預設值
- 將頻繁的 Kubelet 心跳移動到租約 API
- 拆分 Kubernetes 測試壓縮包
- 新增 Watch Bookmarks 支援
- 行為驅動的合規性測試
- 服務負載均衡器的 Finalizer 保護
- 避免為每個觀察者獨立序列化相同的物件
重大變更
其他值得注意的功能
可用性
Kubernetes 1.17 可在 GitHub 上下載。要開始使用 Kubernetes,請檢視這些互動式教程。您也可以使用 kubeadm 輕鬆安裝 1.17。
釋出團隊
此版本的釋出離不開數百位貢獻技術和非技術內容的個人。特別感謝由 Guinevere Saenger 領導的 釋出團隊。釋出團隊的 35 位成員協調了釋出過程中的許多方面,從文件到測試、驗證和功能完整性。
隨著 Kubernetes 社群的壯大,我們的釋出流程出色地展示了開源軟體開發中的協作精神。Kubernetes 使用者數量持續快速增長。這種增長形成了積極的反饋迴圈,吸引了更多貢獻者提交程式碼,從而建立了一個更具活力的生態系統。迄今為止,Kubernetes 擁有超過 39,000 名獨立貢獻者,以及一個擁有超過 66,000 人的活躍社群。
網路研討會
加入 Kubernetes 1.17 釋出團隊的成員,在 2020 年 1 月 7 日瞭解此版本的主要功能。在此處註冊:此處。
參與其中
參與 Kubernetes 最簡單的方式是加入與您興趣相符的眾多特別興趣小組(SIG)。有什麼想向 Kubernetes 社群廣播的嗎?在我們的每週社群會議上,並透過以下渠道分享您的聲音。感謝您持續的反饋和支援。
- 在 Twitter 上關注我們 @Kubernetesio 獲取最新更新
- 在 Discuss 上加入社群討論
- 在 Slack 上加入社群
- 在 Stack Overflow 上提問(或回答問題)
- 分享你的 Kubernetes 故事