Kubernetes 1.22:達到新的高峰
我們很高興地宣佈 Kubernetes 1.22 釋出,這是 2021 年的第二次釋出!
此版本包含 53 項增強功能:13 項增強功能已升級到穩定版,24 項增強功能正在移至測試版,16 項增強功能正在進入 Alpha 版。此外,還有三項功能已棄用。
今年四月,Kubernetes 的釋出節奏已正式從每年四次更改為每年三次。這是與該更改相關的第一個較長週期釋出。隨著 Kubernetes 專案的成熟,每個週期的增強功能數量不斷增長。這意味著從一個版本到另一個版本,貢獻者社群和釋出工程團隊的工作量更大,並且可能會對終端使用者社群造成壓力,要求他們及時更新包含越來越多功能的版本。
將釋出節奏從每年四次更改為每年三次,平衡了專案的許多方面,包括貢獻和釋出的管理方式,以及社群規劃升級和保持最新狀態的能力。
您可以在官方博文 Kubernetes 釋出節奏變更:您需要了解的一切 中閱讀更多內容。
主要主題
Server-side Apply 達到 GA
Server-side Apply 是一個在 Kubernetes API 伺服器上執行的新欄位所有權和物件合併演算法。Server-side Apply 幫助使用者和控制器透過宣告式配置管理其資源。它允許他們透過傳送其完全指定的意圖,以宣告方式建立和/或修改其物件。在測試版中釋出了幾個版本後,Server-side Apply 現已普遍可用。
外部憑證提供程式現在穩定
Kubernetes 客戶端憑證外掛的支援自 1.11 版本以來一直處於測試階段,隨著 Kubernetes 1.22 版本的釋出,現已升級到穩定版。GA 功能集包括對提供互動式登入流的外掛的改進支援,以及許多錯誤修復。有志的外掛作者可以檢視sample-exec-plugin以開始使用。
etcd 升級到 3.5.0
Kubernetes 的預設後端儲存 etcd 釋出了新版本:3.5.0。新版本改進了安全性、效能、監控和開發者體驗。有許多錯誤修復和一些關鍵的新功能,例如遷移到結構化日誌記錄和內建日誌輪換。該版本還提供了詳細的未來路線圖,以實施解決流量過載的方案。您可以在 3.5.0 釋出公告 中閱讀完整詳細的更改列表。
記憶體資源的QoS
最初,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 kubelet 和 kube-proxy,然後將它們與其他 Kubernetes 元件的每日構建版本一起使用,從頭開始執行最新的 Windows 功能。
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 admission alpha 功能,旨在取代 PodSecurityPolicy
- 記憶體管理器進入 Beta 階段
- 一項新的 alpha 功能,可啟用API 伺服器跟蹤
- 一個新的 v1beta3 版本的kubeadm 配置格式
- 用於 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 管理員。他喜歡生活中的簡單事物,並熱愛與家人共度時光。這位精通技術的個人總是樂於接受挑戰並樂於幫助朋友!
使用者亮點
- 5月,CNCF 歡迎全球 27 家新組織成為多元化雲原生生態系統的成員。這些新成員將參與 CNCF 活動,包括將於 2021 年 10 月 12 日至 15 日在洛杉磯舉行的KubeCon + CloudNativeCon NA。
- CNCF 在 KubeCon + CloudNativeCon EU – Virtual 2021 期間授予 Spotify 最佳終端使用者獎。
專案速度
CNCF K8s DevStats 專案彙總了與 Kubernetes 及各個子專案的速度相關的許多有趣資料點。這包括從個人貢獻到貢獻公司數量的一切,是展示構建此生態系統所需付出努力的深度和廣度的例證。
在持續 15 周(4 月 26 日至 8 月 4 日)的 v1.22 釋出週期中,我們看到了來自 1063 家公司和 2054 名個人的貢獻。
生態系統更新
- KubeCon + CloudNativeCon Europe 2021 於 5 月舉行,這是第三次虛擬活動。所有演講現已可點播,供任何想了解的人觀看!
- 春季學期 LFX 專案迎來了規模最大的畢業生班級,共有 28 名成功的 CNCF 實習生!
- CNCF 於今年年初在 Twitch 上推出了直播,旨在為任何希望在世界任何地方學習、成長並與雲原生社群中的其他人協作的人提供明確的互動媒體體驗。
活動更新
- 北美 KubeCon + CloudNativeCon 2021 將於 2021 年 10 月 12 日至 15 日在洛杉磯舉行!您可以在活動網站上找到有關會議和註冊的更多資訊。
- Kubernetes 社群日即將在義大利、英國和華盛頓特區舉行。
即將舉行的釋出網路研討會
加入 Kubernetes 1.22 釋出團隊成員,於 2021 年 10 月 5 日瞭解此版本的主要功能,以及棄用和移除的功能,以幫助規劃升級。有關更多資訊和註冊,請訪問 CNCF 線上專案網站上的活動頁面。
參與其中
如果您有興趣為 Kubernetes 社群做出貢獻,特別興趣小組 (SIG) 是一個很好的起點。其中許多可能與您的興趣相符!如果您想與社群分享一些東西,您可以參加每週的社群會議,或使用以下任何渠道
- 在 Kubernetes 貢獻者網站上了解更多關於為 Kubernetes 做出貢獻的資訊。
- 在 Twitter 上關注我們 @Kubernetesio 獲取最新更新
- 在 Discuss 上加入社群討論
- 在 Slack 上加入社群
- 分享你的 Kubernetes 故事
- 在部落格上閱讀更多關於 Kubernetes 的動態
- 瞭解更多關於 Kubernetes 釋出團隊的資訊