Kubernetes 1.23:下一個前沿

我們很高興宣布 Kubernetes 1.23 發布,這是 2021 年的最後一個版本!

此版本包含 47 項增強功能:11 項增強功能已升級至穩定版,17 項增強功能正在移至 Beta 版,19 項增強功能正在進入 Alpha 版。此外,有 1 項功能已被棄用。

主要主題

棄用 FlexVolume

FlexVolume 已被棄用。建議使用樹狀結構外的 CSI 驅動程式來編寫 Kubernetes 中的卷驅動程式。有關更多資訊,請參閱 此文件。FlexVolume 驅動程式的維護者應實作 CSI 驅動程式,並將 FlexVolume 使用者遷移到 CSI。FlexVolume 使用者應將其工作負載遷移到 CSI 驅動程式。

棄用 klog 特定標誌

為了簡化程式碼庫,Kubernetes 1.23 中已將多個 日誌記錄標誌標記為已棄用。實作它們的程式碼將在未來版本中移除,因此這些標誌的使用者需要開始使用一些替代解決方案來取代已棄用的標誌。

Kubernetes 發布流程中符合軟體供應鏈 SLSA Level 1 標準

Kubernetes 版本現在產生出處證明檔案,描述發布流程的暫存和發布階段。現在,工件在從一個階段移交到下一個階段時會經過驗證。最後一部分完成了符合 SLSA 安全框架(軟體工件供應鏈層級)Level 1 所需的工作。

IPv4/IPv6 雙堆疊網路功能升級至 GA

IPv4/IPv6 雙堆疊網路功能 升級至 GA。自 1.21 以來,Kubernetes 叢集預設已啟用以支援雙堆疊網路功能。在 1.23 中,IPv6DualStack 功能閘道已移除。雙堆疊網路功能的使用不是強制性的。儘管叢集已啟用以支援雙堆疊網路功能,但 Pod 和服務繼續預設為單堆疊。若要使用雙堆疊網路功能,Kubernetes 節點必須具有可路由的 IPv4/IPv6 網路介面,必須使用支援雙堆疊功能的 CNI 網路外掛程式,Pod 必須配置為雙堆疊,且服務的 .spec.ipFamilyPolicy 欄位必須設定為 PreferDualStackRequireDualStack

HorizontalPodAutoscaler v2 升級至 GA

HorizontalPodAutoscaler autoscaling/v2 穩定版 API 在 1.23 中移至 GA。HorizontalPodAutoscaler autoscaling/v2beta2 API 已被棄用。

通用臨時卷功能升級至 GA

通用臨時卷功能在 1.23 中移至 GA。此功能允許任何現有的、支援動態佈建的儲存驅動程式用作臨時卷,卷的生命週期與 Pod 綁定。支援卷佈建的所有 StorageClass 參數和 PersistentVolumeClaims 支援的所有功能。

跳過卷擁有權變更功能升級至 GA

在 1.23 中,用於配置 Pod 的卷權限和擁有權變更策略的功能已移至 GA。這允許使用者跳過掛載時的遞迴權限變更,並加快 Pod 啟動時間。

允許 CSI 驅動程式選擇加入卷擁有權和權限變更功能升級至 GA

允許 CSI 驅動程式宣告支援基於 fsGroup 權限的功能在 1.23 中升級至 GA。

PodSecurity 升級至 Beta 版

PodSecurity 移至 Beta 版。PodSecurity 取代了已棄用的 PodSecurityPolicy 准入控制器。PodSecurity 是一種准入控制器,它根據設定強制執行層級的特定命名空間標籤,在命名空間中的 Pod 上強制執行 Pod 安全標準。在 1.23 中,預設啟用 PodSecurity 功能閘道。

容器運行時介面 (CRI) v1 為預設值

Kubelet 現在支援 CRI v1 API,它現在是專案範圍的預設值。如果容器運行時不支援 v1 API,Kubernetes 將回退到 v1alpha2 實作。終端使用者不需要採取任何中介動作,因為 v1v1alpha2 在實作上沒有差異。v1alpha2 很可能會在未來的 Kubernetes 版本中移除,以便能夠開發 v1

結構化日誌記錄升級至 Beta 版

結構化日誌記錄已達到其 Beta 里程碑。來自 kubelet 和 kube-scheduler 的大多數日誌訊息都已轉換。鼓勵使用者試用 JSON 輸出或剖析結構化文字格式,並針對未解決的問題(例如處理日誌值中的多行字串)提供可能的解決方案的回饋意見。

簡化排程器的多點外掛程式配置

kube-scheduler 正在為外掛程式新增一個新的、簡化的配置欄位,以允許在一個位置啟用多個擴充點。新的 multiPoint 外掛程式欄位旨在簡化管理員的大多數排程器設定。透過 multiPoint 啟用的外掛程式將自動註冊到它們實作的每個個別擴充點。例如,同時為 Score 和 Filter 擴充功能實作外掛程式的外掛程式可以同時啟用這兩個擴充功能。這表示可以啟用和停用整個外掛程式,而無需手動編輯個別擴充點設定。由於這些擴充點與大多數使用者無關,因此現在可以將它們抽象化。

CSI 遷移更新

CSI 遷移允許使用相應的 CSI 驅動程式取代現有的樹狀結構內儲存外掛程式,例如 kubernetes.io/gce-pdkubernetes.io/aws-ebs。如果 CSI 遷移運作正常,Kubernetes 終端使用者不應注意到差異。遷移後,Kubernetes 使用者可以使用現有的介面繼續依賴樹狀結構內儲存外掛程式的所有功能。

  • CSI 遷移功能預設為開啟,但在 1.23 中仍保持 GCE PD、AWS EBS 和 Azure Disk 的 Beta 版。
  • CSI 遷移在 1.23 中作為 Ceph RBD 和 Portworx 的 Alpha 功能引入。

CRD 的表達式語言驗證為 Alpha 版

CRD 的表達式語言驗證在 1.23 中開始為 Alpha 版。如果啟用了 CustomResourceValidationExpressions 功能閘道,自訂資源將透過使用 通用表達式語言 (CEL) 的驗證規則進行驗證。

伺服器端欄位驗證為 Alpha 版

如果從 1.23 開始啟用 ServerSideFieldValidation 功能閘道,則當使用者在請求中傳送包含未知或重複欄位的 Kubernetes 物件時,他們將收到來自伺服器的警告。先前,未知欄位和除最後一個重複欄位以外的所有欄位都將被伺服器捨棄。

啟用功能閘道後,我們還引入了 fieldValidation 查詢參數,以便使用者可以依請求指定伺服器的所需行為。fieldValidation 查詢參數的有效值為

  • 忽略(功能閘道停用時的預設值,與 1.23 之前的捨棄/忽略未知欄位的行為相同)
  • 警告(功能閘道啟用時的預設值)。
  • 嚴格(這將使請求失敗並出現無效請求錯誤)

OpenAPI v3 為 Alpha 版

如果從 1.23 開始啟用 OpenAPIV3 功能閘道,使用者將能夠請求所有 Kubernetes 類型的 OpenAPI v3.0 規格。OpenAPI v3 旨在完全透明,並包含對一組在發布 OpenAPI v2 時捨棄的欄位的支援:defaultnullableoneOfanyOf。針對每個 Kubernetes 群組版本發布一個單獨的規格(在 $cluster/openapi/v3/apis/<group>/<version> 端點),以改進效能和探索,所有群組版本都可以在 $cluster/openapi/v3 路徑中找到。

其他更新

升級至穩定版

重大變更

發行說明

在我們的 發行說明 中查看 Kubernetes 1.23 發行的完整詳細資訊。

可用性

Kubernetes 1.23 可在 GitHub 上下載。若要開始使用 Kubernetes,請查看這些互動式教學課程,或使用 kind 透過 Docker 容器「節點」運行本地 Kubernetes 叢集。您也可以使用 kubeadm 輕鬆安裝 1.23。

發布團隊

此版本的發布歸功於一群非常敬業的個人,他們組成一個團隊來交付技術內容、文件、程式碼以及構成每個 Kubernetes 版本的許多其他組件。

非常感謝發布負責人 Rey Lejano 帶領我們完成成功的發布週期,並感謝發布團隊中的每個人互相支持,並努力為社群交付 1.23 版本。

Kubernetes 1.23:下一個前沿

「下一個前沿」主題代表 1.23 版本中新的和升級的增強功能、Kubernetes 的星際爭霸戰參考歷史,以及發布團隊中社群成員的成長。

Kubernetes 有星際爭霸戰參考歷史。Google 內部 Kubernetes 的原始代號是 Project 7,參考了星際爭霸戰:重返地球的七之九。當然,Borg 是 Kubernetes 前身的名稱。「下一個前沿」主題延續了星際爭霸戰的參考。「下一個前沿」是兩個星際爭霸戰標題的融合,《星際爭霸戰V:終極先鋒》和《星際爭霸戰:下一代》。

「下一個前沿」代表 SIG 發布章程中的一行,「確保有一個一致的社群成員群體到位,以長期支援發布流程」。隨著每個發布團隊,我們都透過新的發布團隊成員來擴大社群,對於許多人來說,這是他們在開源前沿的首次貢獻。

參考文獻:https://kubernetes.dev.org.tw/blog/2015/04/borg-predecessor-to-kubernetes/ 參考文獻:https://github.com/kubernetes/community/blob/master/sig-release/charter.md

Kubernetes 1.23 發布標誌延續了主題的星際爭霸戰參考。每顆星星都是 Kubernetes 標誌中的舵。這艘船代表了發布團隊的集體合作。

Rey Lejano 設計了標誌。

使用者重點

生態系統更新

專案速度

CNCF K8s DevStats 專案匯總了許多與 Kubernetes 和各種子專案的速度相關的有趣資料點。這包括從個人貢獻到貢獻公司的數量等所有內容,並說明了為發展此生態系統所做的努力的深度和廣度。

在 v1.23 發布週期(從 8 月 23 日到 12 月 7 日,共 16 週)中,我們看到了來自 1032 家公司1084 位個人 的貢獻。

活動更新

  • KubeCon + CloudNativeCon China 2021 將於本月 12 月 9 日至 11 日舉行。在去年休息之後,今年的活動將以線上方式舉行,並包含 105 場會議。在此處查看活動排程 here
  • KubeCon + CloudNativeCon Europe 2022 將於 2022 年 5 月 4 日至 7 日在西班牙瓦倫西亞舉行!您可以在 活動網站 上找到有關會議和註冊的更多資訊。
  • Kubernetes 社群日即將在巴基斯坦、巴西、成都和澳洲舉辦活動。

即將舉行的發布網路研討會

加入 Kubernetes 1.23 發布團隊成員於 2022 年 1 月 4 日舉行的會議,以了解此版本的主要功能,以及有助於規劃升級的棄用和移除。如需更多資訊和註冊,請造訪 CNCF 線上課程網站上的 活動頁面

參與其中

參與 Kubernetes 的最簡單方法是加入許多與您的興趣一致的特別興趣小組 (SIG) 之一。有想向 Kubernetes 社群廣播的內容嗎?在我們的每週 社群會議 和透過以下管道分享您的聲音