Kubernetes 1.22:再創高峰
我們很高興宣布 Kubernetes 1.22 版本發布,這是 2021 年的第二個版本!
此版本包含 53 項增強功能:13 項增強功能已升級為穩定版,24 項增強功能正在轉為 Beta 版,而 16 項增強功能正在進入 Alpha 版。此外,還有三項功能已被棄用。
在今年四月,Kubernetes 發布週期已正式從每年四次更改為三次。這是與該變更相關的第一個較長週期版本。隨著 Kubernetes 專案的成熟,每個週期的增強功能數量都在增長。這意味著貢獻者社群和發布工程團隊從一個版本到另一個版本有更多的工作,並且可能會對終端使用者社群造成壓力,使其保持最新版本,其中包含越來越多的功能。
將發布週期從每年四次更改為三次,平衡了專案的許多方面,無論是在貢獻和發布的管理方式方面,還是在社群規劃升級和保持最新狀態的能力方面。
您可以在官方網誌文章 Kubernetes 發布週期變更:您需要了解的內容 中閱讀更多資訊。
主要主題
伺服器端套用升級為 GA
伺服器端套用 是一種在 Kubernetes API 伺服器上運行的新欄位所有權和物件合併演算法。伺服器端套用協助使用者和控制器透過宣告式組態管理其資源。它允許他們透過簡單地發送其完全指定的意圖來宣告式地建立和/或修改其物件。在 Beta 版發布幾個版本後,伺服器端套用現在已正式可用 (Generally Available)。
外部憑證提供者現在穩定
自 1.11 版本以來,對 Kubernetes 客户端 憑證外掛程式 的支援一直處於 Beta 版,隨著 Kubernetes 1.22 版本的發布,現在升級為穩定版。GA 功能集包括改進對提供互動式登入流程的外掛程式的支援,以及許多錯誤修復。有抱負的外掛程式作者可以查看 sample-exec-plugin 以開始入門。
etcd 遷移到 3.5.0
Kubernetes 的預設後端儲存 etcd 有一個新版本:3.5.0。新版本帶來了安全性、效能、監控和開發人員體驗的改進。有許多錯誤修復和一些關鍵的新功能,例如遷移到結構化日誌記錄和內建日誌輪換。此版本附帶了詳細的未來路線圖,以實作流量過載的解決方案。您可以在 3.5.0 版本公告 中閱讀完整且詳細的變更列表。
記憶體資源的服務品質
最初,Kubernetes 使用 v1 cgroups API。在該設計中,Pod
的 QoS 類別僅適用於 CPU 資源 (例如 cpu_shares
)。作為 Alpha 功能,Kubernetes v1.22 現在可以使用 cgroups v2 API 來控制記憶體分配和隔離。此功能旨在在記憶體資源爭用時提高工作負載和節點可用性,並提高容器生命週期的可預測性。
節點系統交換空間支援
關於設定和使用 Kubernetes,每個系統管理員或 Kubernetes 使用者都處於相同的困境:停用交換空間。隨著 Kubernetes 1.22 版本的發布,Alpha 版支援可用於在具有交換記憶體的節點上運行。此變更讓管理員可以選擇在 Linux 節點上配置交換空間,將部分區塊儲存視為額外的虛擬記憶體。
Windows 增強功能和功能
為了持續支援不斷增長的開發人員社群,SIG Windows 發布了他們的 開發環境。這些新工具支援多個 CNI 提供者,並且可以在多個平台上運行。還有一種從頭開始運行最前沿 Windows 功能的新方法,方法是編譯 Windows kubelet 和 kube-proxy,然後將它們與其他 Kubernetes 組件的每日建置版本一起使用。
CSI 對 Windows 節點的支援在 1.22 版本中升級為 GA。在 Kubernetes v1.22 中,Windows 特權容器是一項 Alpha 功能。為了允許在 Windows 節點上使用 CSI 儲存,CSIProxy 使 CSI 節點外掛程式能夠部署為非特權 Pod,並使用代理在節點上執行特權儲存操作。
seccomp 的預設設定檔
kubelet 中新增了預設 seccomp 設定檔的 Alpha 功能,以及新的命令列標誌和組態。使用時,此新功能提供叢集範圍的 seccomp 預設值,預設情況下使用 RuntimeDefault
seccomp 設定檔而不是 Unconfined
。這增強了 Kubernetes 部署的預設安全性。安全性管理員現在可以更安心地入睡,因為工作負載在預設情況下更安全。要了解有關此功能的更多資訊,請參閱官方 seccomp 教學。
使用 kubeadm 實現更安全的控制平面
一項新的 Alpha 功能允許以非 root 使用者身分運行 kubeadm
控制平面組件。這是 kubeadm
中長期要求的安全性措施。要嘗試它,您必須啟用 kubeadm
特定的 RootlessControlPlane 功能閘道。當您使用此 Alpha 功能部署叢集時,您的控制平面將以較低的權限運行。
對於 kubeadm
,Kubernetes 1.22 還帶來了新的 v1beta3 組態 API。此迭代新增了一些長期要求的功能,並棄用了一些現有的功能。v1beta3 版本現在是首選的 API 版本;v1beta2 API 也仍然可用,但尚未棄用。
重大變更
移除多個已棄用的 Beta API
在 1.22 版本中,已移除許多已棄用的 Beta API,以支持這些相同 API 的 GA 版本。所有現有物件都可以透過穩定 API 進行互動。此移除包括 Ingress
、IngressClass
、Lease
、APIService
、ValidatingWebhookConfiguration
、MutatingWebhookConfiguration
、CustomResourceDefinition
、TokenReview
、SubjectAccessReview
和 CertificateSigningRequest
API 的 Beta 版本。
有關完整列表,請查看 已棄用 API 遷移指南 以及網誌文章 Kubernetes 1.22 中的 API 和功能移除:您需要了解的內容。
用於臨時容器的 API 變更和改進
用於建立 臨時容器 的 API 在 1.22 版本中發生變更。臨時容器功能是 Alpha 版,預設情況下已停用,新的 API 不適用於嘗試使用舊 API 的客户端。
對於穩定功能,kubectl 工具遵循 Kubernetes 版本偏差政策;但是,kubectl v1.21 及更早版本不支援用於臨時容器的新 API。如果您計劃使用 kubectl debug
建立臨時容器,並且您的叢集正在運行 Kubernetes v1.22,則您無法使用 kubectl v1.21 或更早版本執行此操作。如果您希望將 kubectl debug
與叢集版本的組合一起使用,請將 kubectl 更新到 1.22。
其他更新
已升級為穩定版
值得注意的功能更新
- 引入了新的 PodSecurity 准入 Alpha 功能,旨在替代 PodSecurityPolicy
- 記憶體管理器 轉為 Beta 版
- 啟用 API 伺服器追蹤 的新 Alpha 功能
- kubeadm 組態 格式的新 v1beta3 版本
- 用於 PersistentVolumes 的 通用資料填充器 現在在 Alpha 版中可用
- Kubernetes 控制平面現在將始終使用 CronJobs v2 控制器
- 作為 Alpha 功能,所有 Kubernetes 節點組件 (包括 kubelet、kube-proxy 和容器執行階段) 都可以 以非 root 使用者身分運行
發行說明
您可以在 發行說明 中查看 1.22 版本的完整詳細資訊。
版本的可用性
Kubernetes 1.22 可下載,也可在 GitHub 專案 上取得。
網路上有很多很棒的資源可以幫助您開始使用 Kubernetes。您可以查看 Kubernetes 主要網站上的一些互動式教學,或者使用 Docker 容器和 kind 在您的機器上執行本機叢集。如果您想嘗試從頭開始建置叢集,請查看 Kelsey Hightower 的 Kubernetes the Hard Way 教學課程。
發佈團隊
本次發佈是由一群非常盡心盡力的人共同完成的,他們組成一個團隊,交付技術內容、文件、程式碼以及構成每個 Kubernetes 發佈版本的許多其他組件。
非常感謝發佈負責人 Savitha Raghunathan 領導我們成功完成發佈週期,並感謝發佈團隊中的每個人互相支持,以及努力不懈地為社群交付 1.22 版本。
我們也想藉此機會紀念 Peeyush Gupta,他是我們團隊的一員,於今年稍早時不幸離世。Peeyush 積極參與 SIG ContribEx 和 Kubernetes 發佈團隊,最近擔任 1.22 溝通負責人。他的貢獻和努力將持續反映在他協助建立的社群中。已建立 CNCF 紀念頁面,社群可以在此分享思念和回憶。
發佈標誌
在持續的疫情、天災和揮之不去的倦怠陰影中,Kubernetes 1.22 版本包含了 53 項增強功能。這使其成為迄今為止規模最大的發佈版本。這項成就的達成,完全歸功於勤奮且充滿熱情的發佈團隊成員,以及 Kubernetes 生態系統中出色的貢獻者。發佈標誌提醒我們不斷追求新的里程碑並創造新的紀錄。它獻給所有發佈團隊成員、登山者和觀星者!
此標誌由 Boris Zotkin 設計。Boris 是 MathWorks 的 Mac/Linux 管理員。他享受生活中的簡單事物,並熱愛與家人共度時光。這位精通技術的人總是樂於接受挑戰,並樂於幫助朋友!
使用者重點
- 在五月,CNCF 歡迎全球 27 個新組織加入多元化的雲原生生態系統成為會員。這些新會員將參與 CNCF 活動,包括即將到來的 10 月 12 日至 15 日在洛杉磯舉行的 KubeCon + CloudNativeCon NA。
- CNCF 在 KubeCon + CloudNativeCon EU – Virtual 2021 期間,授予 Spotify 頂級終端使用者獎。
專案速度
CNCF K8s DevStats 專案彙整了許多與 Kubernetes 及其各種子專案速度相關的有趣資料點。這包括從個人貢獻到貢獻公司的數量等所有內容,並說明了投入發展此生態系統的努力的深度和廣度。
在 v1.22 發佈週期(4 月 26 日至 8 月 4 日,為期 15 週)中,我們看到了來自 1063 家公司 和 2054 位個人 的貢獻。
生態系統更新
- KubeCon + CloudNativeCon Europe 2021 於五月舉行,是第三次以虛擬方式舉辦的活動。所有演講都現已開放隨選觀看,供任何想要趕上進度的人觀看!
- 春季學期 LFX 計畫 迎來了規模最大的畢業班,共有 28 位成功的 CNCF 實習生!
- CNCF 在今年年初於 Twitch 上推出了直播,目標是為任何想要學習、成長並與世界各地雲原生社群中的其他人協作的人提供明確的互動式媒體體驗。
活動更新
- KubeCon + CloudNativeCon North America 2021 將於 2021 年 10 月 12 日至 15 日在洛杉磯舉行!您可以在活動網站上找到有關會議和註冊的更多資訊。
- Kubernetes 社群日 在義大利、英國和華盛頓特區都有即將舉行的活動。
即將舉行的發佈網路研討會
於 2021 年 10 月 5 日加入 Kubernetes 1.22 發佈團隊成員的行列,以了解此版本的主要功能,以及有助於規劃升級的棄用和移除項目。如需更多資訊和註冊,請造訪 CNCF 線上計畫網站上的活動頁面。
參與其中
如果您有興趣為 Kubernetes 社群做出貢獻,特殊興趣小組 (SIG) 是一個很好的起點。其中許多小組可能與您的興趣相符!如果您有任何想與社群分享的事項,您可以加入每週的社群會議,或使用以下任何管道
- 在 Kubernetes 貢獻者網站上了解更多關於為 Kubernetes 做出貢獻的資訊。
- 在 Twitter 上關注我們 @Kubernetesio 以獲取最新更新
- 在 Discuss 上加入社群討論
- 在 Slack 上加入社群
- 分享您的 Kubernetes 故事
- 在 部落格上閱讀更多關於 Kubernetes 的最新動態
- 深入了解 Kubernetes 發佈團隊