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

Kubernetes v1.26: Electrifying

我們懷著無比喜悅的心情宣佈 Kubernetes v1.26 正式釋出!

此版本總共包含 37 項增強功能:其中 11 項升級為穩定版,10 項升級為 Beta 版,16 項進入 Alpha 階段。我們還有 12 個功能被棄用或刪除,其中 3 個功能我們在此公告中做了更詳細的介紹。

Kubernetes 1.26: Electrifying

Kubernetes v1.26 的主題是 Electrifying

每個 Kubernetes 版本的釋出都是專注的志願者們協同努力的結果,並且只有透過使用分佈在全球多個數據中心和地區的多樣化和複雜的計算資源才得以實現。釋出的最終結果——二進位制檔案、映象容器、文件——然後被部署在越來越多的個人、本地和雲計算資源上。

在此版本中,我們希望認識到所有這些 Kubernetes 開發和使用的基礎模組的重要性,同時提高人們對考慮能耗足跡的重要性的認識:環境可持續性是任何軟體解決方案的創造者和使用者都無法迴避的問題,而像 Kubernetes 這樣的軟體的環境足跡,我們相信將在未來的版本中發揮重要作用。

作為一個社群,我們總是努力使每個新版本的釋出過程都比以前更好(例如,在這個版本中,我們已經開始使用 Projects 來跟蹤增強功能)。如果說 v1.24 "Stargazer" 讓我們仰望星空,看到了我們社群團結一致時可能實現的一切,而 v1.25 "Combiner" 則展示了我們社群共同努力所能達成的成就,那麼這次的 v1.26 "Electrifying" 也同樣獻給所有那些個人行動融入釋出流程,使這一切成為可能的人們。

主要主題

Kubernetes v1.26 包含了許多變化,這些變化由全球志願者團隊為您帶來。對於此版本,我們確定了幾個主要主題。

容器映象倉庫變更

在之前的版本中,Kubernetes 更改了容器倉庫,允許將負載分散到多個雲提供商和地區,這一變化減少了對單一實體的依賴,併為大量使用者提供了更快的下載體驗。

此版本的 Kubernetes 是第一個完全在新 registry.k8s.io 容器映象倉庫中釋出的版本。在(現已過時的)k8s.gcr.io 映象倉庫中,將不會發布 v1.26 的容器映象標籤,只有 v1.26 之前的版本的標籤會繼續更新。有關此重大變化的動機、優勢和影響的更多資訊,請參閱 registry.k8s.io:更快、更便宜且已普遍可用

CRI v1alpha2 已移除

隨著容器執行時介面 (CRI) 的採用和 v1.24 中dockershim 的移除,CRI 成為 Kubernetes 與不同容器執行時互動的唯一受支援和有文件記錄的方式。每個 kubelet 都會與該節點上的容器執行時協商使用哪個版本的 CRI。

在之前的版本中,Kubernetes 專案推薦使用 CRI v1 版本,但 kubelet 仍然可以協商使用已被棄用的 CRI v1alpha2

Kubernetes v1.26 放棄了對 CRI v1alpha2 的支援。這個移除將導致如果容器執行時不支援 CRI v1,kubelet 將不會註冊該節點。這意味著 containerd 的 1.5 及更早的次要版本在 Kubernetes 1.26 中不受支援;如果您使用 containerd,您需要將 containerd 升級到 1.6.0 或更高版本**之後**才能將該節點升級到 Kubernetes v1.26。這同樣適用於任何其他只支援 v1alpha2 的容器執行時:如果這對您有影響,您應該聯絡容器執行時供應商尋求建議,或檢視他們的網站以獲取有關如何繼續操作的其他說明。

儲存改進

繼上一個版本中核心容器儲存介面 (CSI) 遷移功能正式釋出 (GA) 後,CSI 遷移是我們幾個版本以來一直努力的持續性工作,此版本繼續新增(和刪除)與遷移目標一致的功能,以及對 Kubernetes 儲存的其他改進。

針對 Azure File 和 vSphere 的 CSI 遷移已升級為穩定版

vSphereAzure 樹內驅動程式向 CSI 的遷移都已升級為穩定版。您可以在 vSphere CSI 驅動程式Azure File CSI 驅動程式 倉庫中找到更多相關資訊。

將 FSGroup 委託給 CSI 驅動程式 已升級為穩定版

此功能允許 Kubernetes 在掛載卷時將 pod 的 fsGroup 提供給 CSI 驅動程式,以便驅動程式可以利用掛載選項來控制卷許可權。以前,kubelet 總是會根據 Pod 的 .spec.securityContext.fsGroupChangePolicy 欄位中指定的策略,對卷中的檔案應用 fsGroup 所有權和許可權更改。從此版本開始,CSI 驅動程式可以選擇在卷的附加或掛載時應用 fsGroup 設定。

移除樹內 GlusterFS 驅動程式

在 v1.25 版本中已被棄用的樹內 GlusterFS 驅動程式在此版本中被移除

移除樹內 OpenStack Cinder 驅動程式

此版本移除了已棄用的 OpenStack 樹記憶體儲整合(cinder 卷型別)。您應該遷移到來自 https://github.com/kubernetes/cloud-provider-openstack 的外部雲提供商和 CSI 驅動程式。更多資訊,請訪問 Cinder 樹內到 CSI 驅動程式遷移

簽署 Kubernetes 釋出工件功能升級為 Beta

在 Kubernetes v1.24 中引入的此功能是提高 Kubernetes 釋出過程安全性的一個重要里程碑。所有釋出工件都使用 cosign 進行無金鑰簽名,二進位制工件和映象都可以被驗證

支援 Windows 特權容器功能升級為穩定版

特權容器支援允許容器以與直接在主機上執行的程序相似的訪問許可權來執行。Windows 節點上對該功能的支援,稱為 HostProcess 容器,現在將升級為穩定版,從而可以從特權容器訪問主機資源(包括網路資源)。

Kubernetes 指標改進

此版本在指標方面有幾個值得注意的改進。

指標框架擴充套件升級為 Alpha

指標框架擴充套件升級為 Alpha,並且Kubernetes 程式碼庫中每個指標的文件現已釋出。此增強功能為 Kubernetes 指標增加了兩個額外的元資料欄位:InternalBeta,代表指標成熟度的不同階段。

元件健康服務水平指標升級為 Alpha

同樣在消費 Kubernetes 指標的能力上有所改進,元件健康服務水平指標 (SLIs)升級為 Alpha:透過啟用 ComponentSLIs 特性門控,將有一個額外的指標端點,允許從原始健康檢查資料轉換成的指標格式來計算服務水平目標 (SLOs)。

特性指標現已可用

現在每個 Kubernetes 元件都可以使用特性指標,透過檢查元件的 kubernetes_feature_enabled 指標端點,可以跟蹤每個活動特性門控是否已啟用

動態資源分配升級為 Alpha

動態資源分配是一個新功能,它將資源排程交由第三方開發者控制:它為請求資源訪問提供了一種替代有限的“可數”介面(例如 nvidia.com/gpu: 2)的方法,提供了一個更類似於持久卷的 API。在底層,它使用容器裝置介面 (CDI) 來進行設備註入。此功能由 DynamicResourceAllocation 特性門控控制。

准入控制中的 CEL 升級為 Alpha

此功能驗證准入策略引入了一個 v1alpha1 API,透過通用表示式語言 (Common Expression Language) 表示式實現可擴充套件的准入控制。目前,自定義策略透過准入 Webhook 來強制執行,雖然靈活,但與程序內策略執行相比存在一些缺點。要使用此功能,請透過 --runtime-config 啟用 ValidatingAdmissionPolicy 特性門控和 admissionregistration.k8s.io/v1alpha1 API。

Pod 排程改進

Kubernetes v1.26 引入了一些相關的增強功能,以更好地控制排程行為。

PodSchedulingReadiness 升級為 Alpha

此功能為 Pod 的 API 引入了一個 .spec.schedulingGates 欄位,用於指示該 Pod 是否允許被排程。外部使用者/控制器可以使用此欄位根據其策略和需求來暫緩 Pod 的排程。

NodeInclusionPolicyInPodTopologySpread 升級為 Beta

透過在 topologySpreadConstraints 中指定 nodeInclusionPolicy,您可以控制在計算 Pod 拓撲擴充套件偏差時是否考慮汙點/容忍

其他更新

升級到穩定版

此版本總共包含 11 項升級為穩定版的增強功能

棄用和移除

此版本中有 12 個功能從 Kubernetes 中被棄用或移除

釋出說明

Kubernetes v1.26 的完整發布詳情可在我們的釋出說明中找到。

可用性

Kubernetes v1.26 可在 Kubernetes 網站上下載。要開始使用 Kubernetes,請檢視這些互動式教程,或使用容器作為“節點”來執行本地 Kubernetes 叢集,使用 kind。您也可以使用 kubeadm 輕鬆安裝 v1.26。

釋出團隊

Kubernetes 的存在離不開其社群的支援、承諾和辛勤工作。每個釋出團隊都由專注的社群志願者組成,他們共同努力構建構成您所依賴的 Kubernetes 版本的各個部分。這需要我們社群各個角落的人們的專業技能,從程式碼本身到其文件和專案管理。

我們想感謝整個釋出團隊,感謝他們辛勤工作數小時,以確保我們為社群提供一個穩定的 Kubernetes v1.26 版本。

我們還要特別感謝我們的釋出負責人 Leonard Pahlke,他成功地在整個釋出週期中引導了整個釋出團隊,透過他持續的支援和對構成成功釋出之路的眾多不同細節的關注,確保我們都能以最佳方式為這個版本做出貢獻。

使用者亮點

生態系統更新

  • KubeCon + CloudNativeCon Europe 2023 將於 2023 年 4 月 17 日至 21 日在荷蘭阿姆斯特丹舉行!您可以在活動網站上找到有關會議和註冊的更多資訊。
  • CloudNativeSecurityCon North America 是一個為期兩天的活動,旨在促進雲原生安全專案的協作、討論和知識共享,以及如何最好地利用這些專案來應對安全挑戰和機遇。該活動將於 2023 年 2 月 1 日至 2 日在美國華盛頓州西雅圖舉行。更多資訊請參見活動頁面
  • CNCF 宣佈了2022 年社群獎獲獎者:社群獎旨在表彰那些為推進雲原生技術做出傑出貢獻的 CNCF 社群成員。

專案速度

CNCF K8s DevStats 專案彙總了許多與 Kubernetes 及其各個子專案發展速度相關的有趣資料點。這包括從個人貢獻到貢獻公司數量的方方面面,展示了推動這個生態系統發展的努力的深度和廣度。

在為期 14 周(9 月 5 日至 12 月 9 日)的 v1.26 釋出週期中,我們看到了來自 976 家公司6877 名個人的貢獻。

即將舉行的釋出網路研討會

請於 2023 年 1 月 17 日星期二美國東部時間上午 10 點至 11 點(世界標準時間下午 3 點至 4 點)加入 Kubernetes v1.26 釋出團隊的成員,瞭解此版本的主要功能,以及棄用和移除的內容,以幫助規劃升級。更多資訊和註冊,請訪問活動頁面

參與其中

參與 Kubernetes 的最簡單方法是加入與你興趣相符的眾多特別興趣小組(SIG)之一。

有什麼想向 Kubernetes 社群廣播的內容嗎?在我們每週的社群會議上分享你的聲音,並透過以下渠道進行分享: