Kubernetes 1.20的發布,這是我們在2020年發布的第三個也是最終的版本!這個版本包含了42個增強:11個增強已經穩定,15個增強進入beta, 16個增強進入alpha。
在上一個擴展的發布周期之后,1.20的發布周期又回到了11周的正常節奏。這是一段時間以來功能最密集的版本之一:Kubernetes的創新周期仍呈上升趨勢。這個版本更多的是alpha而不是穩定的增強,這表明在雲本地生態系統中還有很多需要探索的地方。
卷快照操作趨於穩定
該特性提供了一種觸發卷快照操作的標准方法,並允許用戶以可移植的方式在任何Kubernetes環境和支持的存儲提供程序上合並快照操作。
此外,這些Kubernetes快照原語充當基本構建塊,解除了為Kubernetes開發高級、企業級存儲管理特性(包括應用程序或集群級備份解決方案)的能力。
請注意,快照支持要求Kubernetes分發程序綁定快照控制器、快照目錄和驗證webhook。還必須在集群上部署支持快照功能的CSI驅動程序。
Kubectl對畢業生進行測試調試
kubectl alpha調試功能在1.20中升級到beta版,成為kubectl調試。該特性直接從kubectl提供了對常見調試工作流的支持。此版本kubectl支持的故障排除場景包括:
通過創建使用不同容器映像或命令的pod副本來排除在啟動時崩潰的工作負載。
通過在pod的新副本中添加帶有調試工具的新容器或使用臨時容器來排除無源容器的故障。(臨時容器是一個alpha特性,默認情況下不啟用。)
通過創建在主機名稱空間中運行並能夠訪問主機文件系統的容器來對節點進行故障排除。
注意,作為一個新的內置命令,kubectl debug優先於任何名為“debug”的kubectl插件。您必須重命名受影響的插件。
使用kubectl alpha調試的調用現在是不贊成的,將在后續版本中刪除。更新腳本以使用kubectl調試。有關kubectl調試的更多信息,請參見調試運行的Pods。
測試版:API優先級和公平性
在1.18中引入的Kubernetes 1.20現在默認支持API優先級和公平性(APF)。這允許kube-apiserver按優先級級別對傳入請求進行分類。
Alpha更新:IPV4/IPV6
IPv4/IPv6雙棧已經重新實現,以支持基於用戶和社區反饋的雙棧服務。這允許將IPv4和IPv6服務集群的IP地址分配給單個服務,也允許將一個服務從單個IP棧轉換為雙IP棧,反之亦然。
GA:過程PID限制穩定性
進程id是Linux主機上的基本資源。達到任務限制而不觸及任何其他資源限制並導致主機不穩定是很簡單的。
管理員需要一些機制來確保用戶pods不會導致pid耗盡,從而阻止主機守護進程(運行時、kubelet等)運行。此外,務必確保在pods之間限制pid,以確保它們對節點上的其他工作負載的影響有限。在默認啟用一年之后,SIG節點在SupportNodePidsLimit(節點到豆莢PID隔離)和SupportPodPidsLimit(限制每個豆莢PID的能力)上將PID限制轉變為GA。
優雅的節點關閉
用戶和集群管理員希望pod遵守預期的pod生命周期,包括pod終止。當前,當一個節點關閉時,pods沒有遵循預期的pod終止生命周期,並且不能正常終止,這可能會導致一些工作負載問題。優雅的nodeshudown特寫現在是阿爾法。優雅的nodeshudown使kubelet能夠意識到節點系統的關閉,從而在系統關閉期間能夠優雅地終止pods。
重大變化
Dockershim棄用
Dockershim,用於Docker的容器運行時接口(CRI)墊片正在被棄用。對Docker的支持已被否決,並將在未來的版本中刪除。Docker生成的映像將繼續在兼容CRI的運行時在您的集群中工作,因為Docker映像遵循Open Container Initiative (OCI)映像規范。Kubernetes社區已經寫了一篇關於棄用的詳細博客文章,並有專門的FAQ頁面。
執行探針超時處理
一個長期存在的關於可能影響現有pod定義的exec探測超時的錯誤已經得到修復。在此修復之前,exec探測不考慮字段超時時間。相反,探測將無限期地運行,甚至超過配置的最后期限,直到返回結果為止。通過這個更改,如果沒有指定一個值,將應用缺省值1秒,如果探測時間超過1秒,現有的pod定義可能不再足夠。在此修復中添加了一個名為ExecProbeTimeout的特性gate,它使集群操作符能夠恢復到以前的行為,但在后續版本中將鎖定並刪除該特性。為了恢復到以前的行為,集群操作人員應該將此特性門設置為false。
請查看關於配置探針的更新文檔以了解更多細節。
其他的更新
畢業到穩定
RuntimeClass
內置API類型默認值
添加豆莢-啟動激活-探針延遲
在Windows上支持CRI-ContainerD
對服務的SCTP支持
將AppProtocol添加到服務和端點
顯著特點更新
的計划
發布說明
您可以在發行說明中查看1.20發行版的完整細節。
可用性的釋放
Kubernetes 1.20可以在GitHub上下載。有一些很好的資源可以幫助您開始使用Kubernetes。您可以在Kubernetes主站點上查看一些交互式教程,或者使用帶有kind的Docker容器在您的機器上運行一個本地集群。如果您想從頭開始構建集群,請查看Kelsey Hightower編寫的Kubernetes the Hard Way教程。