Kubernetes 1.21正式發(fā)布 | 主要變化解讀
我們很高興地宣布 Kubernetes 1.21 的發(fā)布,這是我們 2021 年的第一個版本!這個版本包含 51 個增強功能:13 個增強功能升級為穩(wěn)定版,16 個增強功能升級為 beta 版,20 個增強功能進入 alpha 版,還有 2 個功能已經(jīng)棄用。
在這個發(fā)布周期中,我們看到了圍繞發(fā)布團隊的過程所有權(quán)的重大轉(zhuǎn)變。我們從一種同步的交流模式(我們定期向社區(qū)請求輸入)轉(zhuǎn)變?yōu)橐环N社區(qū)選擇的模式——在發(fā)布中加入特性和/或博客。這些變化導(dǎo)致了整個社區(qū)協(xié)作和團隊合作的增加。所有這些結(jié)果都反映在 Kubernetes 1.21 中,在最近的時間里,它擁有最多的特性。
主題
CronJobs 畢業(yè)到穩(wěn)定!
自 Kubernetes 1.8 以來,CronJobs一直是一個測試版功能!在 1.21 中,我們終于看到這個廣泛使用的 API 畢業(yè)到穩(wěn)定。
CronJobs 用于執(zhí)行定期計劃的操作,如備份、報告生成等。每個任務(wù)都應(yīng)該被配置為無限期地重復(fù)出現(xiàn)(例如:一天/一周/一個月);你可以在該間隔內(nèi)定義作業(yè)應(yīng)該啟動的時間點。
不可變的 Secrets 和 ConfigMaps
Immutable Secrets和ConfigMaps為這些資源類型添加了一個新字段,如果設(shè)置了該字段,將拒絕對這些對象的更改。默認(rèn)情況下,Secrets 和 ConfigMaps 是可變的,這對能夠使用更改的 pod 是有益的。如果將錯誤的配置推送給使用它們的 pod,可變的 Secrets 和 ConfigMaps 也會導(dǎo)致問題。
通過將 Secrets 和 ConfigMaps 標(biāo)記為不可變的,可以確保應(yīng)用程序配置不會改變。如果你希望進行更改,則需要創(chuàng)建一個新的、唯一命名的 Secret 或 ConfigMap,并部署一個新的 pod 來消耗該資源。不可變資源也有伸縮性優(yōu)勢,因為控制器不需要輪詢 API 服務(wù)器來觀察變化。
這個特性在 Kubernetes 1.21 中已經(jīng)畢業(yè)到穩(wěn)定。
IPv4/IPv6 雙棧支持
IP 地址是一種可消耗的資源,集群操作人員和管理員需要確保它不會耗盡。特別是,公共 IPv4 地址現(xiàn)在非常稀少。雙棧支持使原生 IPv6 路由到 pod 和服務(wù),同時仍然允許你的集群在需要的地方使用 IPv4。雙堆棧集群網(wǎng)絡(luò)還改善了工作負(fù)載的可能伸縮限制。
Kubernetes 的雙棧支持意味著 pod、服務(wù)和節(jié)點可以獲得 IPv4 地址和 IPv6 地址。在 Kubernetes 1.21 中,雙棧網(wǎng)絡(luò)已經(jīng)從 alpha 升級到 beta,并且已經(jīng)默認(rèn)啟用了。
優(yōu)雅的節(jié)點關(guān)閉
在這個版本中,優(yōu)雅的節(jié)點關(guān)閉也升級到測試版(現(xiàn)在將提供給更大的用戶群)!這是一個非常有益的特性,它允許 kubelet 知道節(jié)點關(guān)閉,并優(yōu)雅地終止調(diào)度到該節(jié)點的 pod。
目前,當(dāng)節(jié)點關(guān)閉時,pod 不會遵循預(yù)期的終止生命周期,也不會正常關(guān)閉。這可能會在許多不同的工作負(fù)載下帶來問題。接下來,kubelet 將能夠通過 systemd 檢測到即將發(fā)生的系統(tǒng)關(guān)閉,然后通知正在運行的 pod,以便它們能夠盡可能優(yōu)雅地終止。
PersistentVolume 健康監(jiān)測器
持久卷(Persistent Volumes,PV)通常用于應(yīng)用程序中獲取本地的、基于文件的存儲。它們可以以許多不同的方式使用,并幫助用戶遷移應(yīng)用程序,而不需要重新編寫存儲后端。
Kubernetes 1.21 有一個新的 alpha 特性,允許對 PV 進行監(jiān)視,以了解卷的運行狀況,并在卷變得不健康時相應(yīng)地進行標(biāo)記。工作負(fù)載將能夠?qū)\行狀況狀態(tài)作出反應(yīng),以保護數(shù)據(jù)不被從不健康的卷上寫入或讀取。
減少 Kubernetes 的構(gòu)建維護
以前,Kubernetes 維護了多個構(gòu)建系統(tǒng)。這常常成為新貢獻者和當(dāng)前貢獻者的摩擦和復(fù)雜性的來源。
在上一個發(fā)布周期中,為了簡化構(gòu)建過程和標(biāo)準(zhǔn)化原生的 Golang 構(gòu)建工具,我們投入了大量的工作。這應(yīng)該賦予更廣泛的社區(qū)維護能力,并降低新貢獻者進入的門檻。
重大變化
棄用 PodSecurityPolicy
在 Kubernetes 1.21 中,PodSecurityPolicy 已被棄用。與 Kubernetes 所有已棄用的特性一樣,PodSecurityPolicy 將在更多版本中繼續(xù)可用并提供完整的功能。先前處于測試階段的 PodSecurityPolicy 計劃在 Kubernetes 1.25 中刪除。
接下來是什么?我們正在開發(fā)一種新的內(nèi)置機制來幫助限制 Pod 權(quán)限,暫定名為“PSP 替換策略”。我們的計劃是讓這個新機制覆蓋關(guān)鍵的 PodSecurityPolicy 用例,并極大地改善使用體驗和可維護性。要了解更多信息,請閱讀棄用 PodSecurityPolicy:過去、現(xiàn)在和未來。
棄用 TopologyKeys
服務(wù)字段 topologyKeys 現(xiàn)在已棄用;所有使用該字段的組件特性以前都是 alpha 特性,現(xiàn)在也已棄用。我們用一種實現(xiàn)感知拓?fù)渎酚傻姆椒ㄌ鎿Q了 topologyKeys,這種方法稱為感知拓?fù)涮崾尽VС滞負(fù)涞奶崾臼?Kubernetes 1.21 中的一個 alpha 特性。你可以在拓?fù)涓兄崾?/span>中閱讀關(guān)于替換特性的更多細節(jié);相關(guān)的KEP解釋了我們替換的背景。
其他更新
畢業(yè)到穩(wěn)定
EndpointSlice Add sysctl support PodDisruptionBudgets
顯著特性更新
External client-go credential providers——1.21 是 beta 版 Structured logging——計劃 1.22 升級到 beta 版 完成 Jobs 和 Pods 清理后的 TTL——升級到 beta
發(fā)布說明
你可以在發(fā)布說明中查看 1.21 版本的完整細節(jié)。
下載安裝
Kubernetes 1.21 可在GitHub 上下載。Kubernetes 有一些很好的資源可供使用。你可以在 Kubernetes 站點上查看一些交互式教程,或者使用kind和 Docker 容器在你的機器上運行一個本地集群。如果你想嘗試從頭開始構(gòu)建集群,請查看 Kelsey Hightower 編寫的Kubernetes 艱難之路教程。
發(fā)布團隊
這次發(fā)布是由一群非常專注的個人完成的,他們作為一個團隊聚集在一起,在世界上發(fā)生了很多事情的時候。非常感謝發(fā)布負(fù)責(zé)人 Nabarun Pal,以及發(fā)布團隊中所有相互支持、為向社區(qū)交付 1.21 發(fā)行版而努力工作的人。
版本標(biāo)識

Kubernetes 1.21 發(fā)布標(biāo)志描繪了發(fā)布團隊的全球性質(zhì),發(fā)布團隊成員居住在 UTC+8 到 UTC-8 的各個時區(qū)。發(fā)行團隊的多樣性帶來了許多挑戰(zhàn),但團隊通過采用更多的異步通信實踐來解決這些問題。發(fā)行標(biāo)志中的七角形球體表明了社區(qū)克服挑戰(zhàn)的堅定決心。它慶祝發(fā)布團隊在過去 3 個月里驚人的團隊合作,帶來了一個有趣的 Kubernetes 發(fā)布!
這個標(biāo)志是由來自印度的獨立設(shè)計師Aravind Sekar設(shè)計的。Aravind 幫助像 PyCon India 這樣的開源社區(qū)進行設(shè)計工作。
- END -
公眾號后臺回復(fù)「加群」加入一線高級工程師技術(shù)交流群,一起交流進步。
推薦閱讀 Kubernetes 運維架構(gòu)師實戰(zhàn)集訓(xùn)營 31天拿下K8s含金量最高的CKA證書! 搭建一套完整的企業(yè)級 K8s 集群(v1.20,二進制方式) 記一次 Kubernetes 機器內(nèi)核問題排查 Shell 腳本進階,經(jīng)典用法及其案例 Kubernetes 集群網(wǎng)絡(luò)從懵圈到熟悉 一個完整的、全面 k8s 化的集群穩(wěn)定架構(gòu) JAVA應(yīng)用運維,線上故障排查全套路 記一次 Linux服務(wù)器被入侵后的排查思路
點亮,服務(wù)器三年不宕機


