Kubernetes v1.21 重磅發(fā)布 | 新版本 6 大核心主題

就在12月8日,Kubernetes v1.20 正式發(fā)布,這是 2020 年的第三個(gè)新版本,也是最后一個(gè)版本。
該版本包含 42 個(gè)增強(qiáng)功能:其中 11 個(gè)增強(qiáng)功能趨于穩(wěn)定,15 個(gè)進(jìn)入 Beta,16 個(gè)進(jìn)入 Alpha。
之前擴(kuò)展發(fā)布周期后,v1.20 發(fā)布周期恢復(fù)到正常的 11 周。這是近來(lái)功能最密集的版本之一:Kubernetes 更新速度仍在加快。該版本 Alpha 增強(qiáng)功能比穩(wěn)定的增強(qiáng)功能更多,這表明在云原生生態(tài)系統(tǒng)中還有許多值得探索的空間。
Major Themes
新版本主要圍繞以下主題:
1.存儲(chǔ)卷快照功能趨于穩(wěn)定
現(xiàn)在提供了觸發(fā)存儲(chǔ)卷快照功能的標(biāo)準(zhǔn)方法,并允許用戶以可移植的方式在 Kubernetes 環(huán)境或任何受支持的存儲(chǔ)提供程序上合并快照操作。
同時(shí),Kubernetes 快照原語(yǔ)可作為基礎(chǔ)構(gòu)建塊,能提供 Kubernetes 開(kāi)發(fā)企業(yè)級(jí)存儲(chǔ)管理功能的能力,包括應(yīng)用程序以及集群備份解決方案。
另外,快照支持需要 Kubernetes 發(fā)行廠商捆綁 Snapshot 控制器、Snapshot CRD 和驗(yàn)證 Webhook。支持快照功能的 CSI 驅(qū)動(dòng)程序也要部署在集群上。
2.Kubectl Debug 進(jìn)入 Beta
kubectl alpha debug 功能在 v1.20 進(jìn)入 Beta 版,并更名為 kubectl debug。該功能能通過(guò) kubectl 提供常見(jiàn)調(diào)試工作流的支持。
現(xiàn)在 kubectl 支持的故障排除方案包括:
通過(guò)創(chuàng)建使用其他容器鏡像的 Pod 副本解決啟動(dòng)時(shí)工作負(fù)載崩潰的問(wèn)題。
通過(guò)在 Pod 的新副本或臨時(shí)容器(臨時(shí)容器是一項(xiàng)默認(rèn)不啟用的 Alpha 功能。)使用調(diào)試工具添加新容器來(lái)解決 Distroless 容器的故障。
通過(guò)在主機(jī)命名空間中創(chuàng)建能運(yùn)行并具有訪問(wèn)主機(jī)文件系統(tǒng)權(quán)限的容器,對(duì)節(jié)點(diǎn)進(jìn)行故障排除。
作為新的內(nèi)置命令,kubectl debug 比任何名字帶有 “debug” 的 kubectl 插件優(yōu)先級(jí)都要高,因此必須重命名受影響的插件。
在 v1.20 中,不建議繼續(xù)使用 kubectl alpha debug。后續(xù)發(fā)行版中其也被刪除,建議更新腳本使用 kubectl debug。
3.Beta:API 優(yōu)先級(jí)和公平性
v1.18 版本引入的 API 優(yōu)先級(jí)和公平性(APF)功能現(xiàn)在在 Kubernetes v1.20 默認(rèn)啟用,它能讓 kube-apiserver 按優(yōu)先級(jí)對(duì)傳入的請(qǐng)求進(jìn)行分類。
4.IPV4/IPV6 Alpha 功能更新
IPv4/IPv6 雙協(xié)議棧基于用戶和社區(qū)反饋重新實(shí)現(xiàn),現(xiàn)在既可以將 IPv4 與 IPv6 服務(wù)集群 IP 地址分配給單個(gè)服務(wù),也可以在服務(wù)中實(shí)現(xiàn)單 IP 棧與雙 IP 棧的切換。
5.GA:限制進(jìn)程 PID
進(jìn)程 ID(PID)是 Linux 主機(jī)上的基本資源,為避免主機(jī)不穩(wěn)定,要達(dá)到任務(wù)限制與資源限制的平衡。
管理員需要一些機(jī)制來(lái)確保用戶 Pod 不會(huì)導(dǎo)致 PID 耗盡,以避免主機(jī)守護(hù)程序(運(yùn)行時(shí)、kubelet 等)停止運(yùn)行。另外,也要確保在容器之間限制 PID,以確保不會(huì)對(duì)節(jié)點(diǎn)上其他工作負(fù)載造成影響。在一年前默認(rèn)啟用后,SIG Node 通過(guò) SupportNodePidsLimit(node-to-pod PID 隔離)和 SupportPodPidsLimit(能在 Pod 限制 PID)將限制進(jìn)程 PID 推向 GA。
6.Alpha:節(jié)點(diǎn)優(yōu)雅關(guān)閉
用戶和集群管理員希望 Pod 以預(yù)定的 Pod 生命周期運(yùn)行,包括 Pod 終止。但目前節(jié)點(diǎn)關(guān)閉時(shí),Pod 不會(huì)遵循預(yù)期的 Pod 終止生命周期,并無(wú)法正常終止,這可能會(huì)導(dǎo)致工作負(fù)載出現(xiàn)問(wèn)題。GracefulNodeShutdown 功能現(xiàn)在進(jìn)入 Alpha,它能讓 kubelet 知道節(jié)點(diǎn)系統(tǒng)關(guān)閉,從而在系統(tǒng)關(guān)閉期間正常終止 Pod。
重要更新
以下是 v1.20 中值得關(guān)注的變化:
1.Dockershim 棄用
v1.20 將棄用 Dockershim,即 Docker 容器運(yùn)行時(shí)接口(CRI),這意味著不再支持 Docker,并將在后續(xù)版本中刪除。由于Docker 鏡像遵循開(kāi)放容器倡議(OCI)鏡像規(guī)范,所以 Docker 產(chǎn)生的鏡像能在所有 CRI 兼容運(yùn)行時(shí)的集群中正常使用。
2.Exec 探針超時(shí)處理
修正了長(zhǎng)期存在的 exec 探針超時(shí)錯(cuò)誤,該 bug 可能會(huì)對(duì)現(xiàn)有 pod 定義造成影響。
在發(fā)布該修復(fù)程序之前,exec 探針未考慮 timeoutSeconds 字段,并會(huì)無(wú)限期運(yùn)行,甚至超過(guò)配置限制,直到返回結(jié)果。此次修復(fù)后,如果未指定值,探針會(huì)默認(rèn)為 1 秒;如果探針時(shí)間超過(guò) 1 秒,現(xiàn)有 Pod 定義可能無(wú)法滿足。
此次修復(fù)還添加了一個(gè)名為 ExecProbeTimeout 的 feature gate,它能讓集群操作員還原到以前的行為,但在后續(xù)發(fā)行版中,它將被鎖定并刪除。如果要恢復(fù)以前的行為,要將該 feature gate 設(shè)置為 false。
其他更新
1.以下特性進(jìn)入穩(wěn)定
RuntimeClass
內(nèi)置 API 類型默認(rèn)值
添加 Pod-Startup Liveness-Probe 延遲
在 Windows 上支持 CRI-ContainerD
SCTP 支持 Service
將 AppProtocol 添加到 Service 和 Endpoint
2.重要功能更新
#19 CronJobs:用于執(zhí)行所有與時(shí)間相關(guān)的操作,即備份,報(bào)告生成等。
發(fā)布 logo
對(duì)于許多人來(lái)說(shuō),2020 年是充滿挑戰(zhàn)的一年,但是 Kubernetes 的貢獻(xiàn)者在此版本中提供了創(chuàng)紀(jì)錄的增強(qiáng)功能。這是一項(xiàng)巨大的成就,因此發(fā)布負(fù)責(zé)人希望在今年結(jié)束時(shí)有所成就,并向 Kubernetes 1.14-Caturnetes 致敬,包括一只名為 “Humphrey” 的 “rad” 貓。

本文只簡(jiǎn)單介紹了 Kubernetes v1.20 中的一些重要增強(qiáng)功能,以及企業(yè)用戶和個(gè)人開(kāi)發(fā)者可能會(huì)比較關(guān)注的新功能。關(guān)于新版本的更多內(nèi)容,請(qǐng)查看官方文檔:
https://kubernetes.io/blog/2020/12/08/kubernetes-1-20-release-announcement/
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md
—————END————— 推薦閱讀:
MyBatis動(dòng)態(tài)SQL,寫(xiě)SQL更爽 面試官:String長(zhǎng)度有限制嗎?是多少? 阿里首推的 SpringBoot + Vue 全棧項(xiàng)目 憑啥不能用uuid做MySQL的主鍵!? SpringBoot+vue.js搭建圖書(shū)管理系統(tǒng) MyBatis-Plus常用API全套教程,看完沒(méi)有不懂的
最近面試BAT,整理一份面試資料《Java面試BAT通關(guān)手冊(cè)》,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。 獲取方式:關(guān)注公眾號(hào)并回復(fù) java 領(lǐng)取,更多內(nèi)容陸續(xù)奉上。 明天見(jiàn)(??ω??)??
