Kubernetes 1.19 版本終於來啦!這是2020年的第二個版本,也是迄今爲止最長的發佈週期,總共持續20周。它由33項加強功能組成。12個加強功能進入穩定版,18個加強功能進入測試版,13個加強功能進入alpha版。 git
長期支持(LTS)工做組在2019年初進行的一項調查顯示在當前的9個月支持期內,很大一部分 Kubernetes
用戶未能升級。這一點以及調查中的其餘反應代表,若是將補丁支持期延長至12-14個月,則30%的用戶可以將其部署保持在支持的版本上。不管用戶使用的是自建版仍是商業發行版,狀況都是如此。所以,延長支持期將致使超過 80%
的用戶使用受支持的版本,而不是如今的 50-60%
。一年一度的支持期可爲用戶提供所需的緩衝期,而且更符合熟悉的年度規劃週期。從 Kubernetes 1.19
版本開始,支持窗口將延長到一年。github
傳統上,Kubernetes
調度器基於這樣的假設:集羣中任何地方均可以使用額外的持久性存儲,並具容量無限。拓撲約束解決了第一點,但到目前爲止,Pod
調度仍然沒有考慮剩餘的存儲容量可能不足以啓動一個新的 pod
。存儲容量追蹤是一個新的 Alpha
特性,它經過爲 CSI
驅動程序添加一個 API
來解決這個問題,以報告存儲容量,並在 Kubernetes
調度器中爲 Pod
選擇節點時使用該信息。該功能可做爲支持本地卷和其餘容量限制較大的卷類型的動態預配置的基礎。正則表達式
Kubernetes
提供了卷插件,其生命週期與 Pod
綁定,可用做臨時空間(例如內置的 emptydir
卷類型),也能夠將一些數據加載到 Pod
中(例如內置的configmap
和 secret
卷類型)。新的通用暫存卷 alpha 功能容許任何現有的支持動態供應的存儲驅動程序被用做 ephemeral
卷,並將該卷的生命週期綁定到 Pod。它能夠用來提供不一樣於根磁盤的臨時存儲,例如持久內存或者該節點上的獨立本地磁盤。支持全部用於卷供應的 StorageClass
參數。支持 PersistentVolumeClaims
支持的全部功能,如存儲容量跟蹤、快照和還原以及卷的大小調整。bootstrap
CSI
健康情況監控的 Alpha
版本隨 Kubernetes 1.19
一塊兒發佈。該功能使 CSI
驅動程序可以與 Kubernetes
共享來自底層存儲系統的異常卷情況,以便將其做爲事件報告在 PVC
或 Pod
上。此功能是 Kubernetes
進行程序檢測和解決單個卷健康問題的基礎。api
就將 Ingress API
推向 GA
而言,AP
I 自己在 Beta
版中已經存在了很長時間,以致於經過使用和採用(包括用戶和負載均衡器 Ingress
控制器提供商),它已經達到了事實上的 GA
狀態。在沒有全面替代的狀況下放棄它不是一個可行的方法。它顯然是一個有用的 API
,而且捕獲了一組不平凡的用例。在這一點上,彷佛更謹慎的作法是將當前的 API
聲明爲社區將支持的 V1
版本,同時開發 V2 Ingress API
或具備超集功能的徹底不一樣的 API
。安全
在 v1.19
以前,Kubernetes
控制平面中的日誌記錄沒法保證日誌消息和這些日誌中對 Kubernetes 對象的引用有任何統一的結構。這使得對日誌的解析、處理、存儲、查詢和分析變得困難,並迫使管理員和開發人員在大多數狀況下依靠基於一些正則表達式的臨時解決方案。因爲這些問題,任何基於這些日誌的分析解決方案都很難實現和維護。服務器
這個 Kubernetes
版本爲 klog 庫引入了新的方法,該方法提供了用於格式化日誌消息的更結構化的接口。每一個現有的格式化日誌方法(Infof,Errorf)都經過結構化方法(InfoS,ErrorS)進行匹配。新的日誌記錄方法將日誌消息做爲第一個參數,將鍵值對列表做爲可變參數的第二個參數。這種方法容許逐步採用結構化日誌記錄,而無需一次將全部 Kubernetes
轉換爲新的API。app
kubelet 使用私鑰和證書對 kube-apiserver
進行認證。證書是在 kubelet
首次啓動時經過集羣外機制提供給它的。自 Kubernetes v1.8
以來,集羣已經包含了一個(beta)流程,用於獲取初始的證書/密鑰對,並在證書到期臨近時進行輪轉,在 Kubernetes v1.19
中,這個功能能夠穩定下來了。負載均衡
在 kubelet
啓動過程當中,將對文件系統進行掃描,以查找由證書管理器管理的現有證書/密鑰對。若是有可用的證書/密鑰,則將加載它。若是沒有,則 kubelet
會檢查配置文件中的編碼證書值或 kubeconfig
中的文件引用。若是證書是一個 bootstrap
證書,則它將用於生成密鑰,建立證書籤名請求並向 API
服務器請求籤名的證書。微服務
當到期臨近時,證書管理器會負責提供正確的證書,生成新的私鑰和請求新的證書。隨着 kubelet
請求證書的簽名是其啓動過程的一部分,而且不斷地對來自 kubelet
的證書籤名請求進行自動批准,以使集羣變得易於管理。
如下功能迎來穩定版
重大變化
其餘重要變化
發行說明
在咱們的發行說明(https://github.com/kubernetes... Kubernetes 1.19 發行版的完整詳細信息。
可用性
Kubernetes 1.19能夠在GitHub(https://github.com/kubernetes...。要開始使用 Kubernetes,請查看這些交互式教程(https://kubernetes.io/docs/tu... KinD(Docker中的Kubernetes)的 Docker 容器「節點」運行本地 Kubernetes 集羣。您還可使用kubeadm 輕鬆安裝1.19 。
發佈團隊
這個版本的發佈是經過數百人的努力,他們貢獻了技術和非技術內容。特別感謝 HashiCorp 的高級開發人員倡導者T aylor Dolezal 領導的發佈團隊。34位發佈團隊成員協調了發佈的各個方面,從文檔到測試、驗證和功能完整性。
隨着 Kubernetes 社區的發展,咱們的發佈過程表明了開源軟件開發中協做的驚人表現。Kubernetes 繼續以快速的速度得到新用戶。這種增加創造了一個積極的反饋循環,更多的貢獻者提交代碼創造了一個更有活力的生態系統。迄今爲止,Kubernetes 已經有超過49,000名我的貢獻者,以及一個超過3,000人的活躍社區
發佈 Logo
全部人都啓發了這個 Kubernetes 1.19 版本 Logo!這個版本有點像是一場馬拉松比賽,也證實了當世界是一個狂野的地方,咱們能夠彙集在一塊兒,作難以想象的事情。
Kubernetes 1.19 發佈 Logo
之因此選擇「強調爪子-本地化」做爲發佈主題,是由於它捕捉了發佈團隊儘管世界情況良好的積極前景。1.19徽標中顯示的字符表明了咱們發行團隊中每一個人的個性,從emo到peppy,甚至更多!
關於設計師:漢娜貝絲·拉格洛夫(Hannabeth Lagerlof)是位於加利福尼亞州洛杉磯的視覺設計師,她在環境和圖形設計領域擁有普遍的背景。漢娜貝斯(Hannabeth)創造藝術和用戶體驗來激發聯繫。您能夠在Twitter上以@emanate_design的身份找到Hannabeth。
從長遠來看
這次發佈的內容也與加強功能方面有所不一樣。傳統上,咱們有3-4周的時間,從呼籲加強功能到加強功能凍結,這段時間結束後,貢獻者能夠確認某項功能是否會成爲週期的一部分。此次發佈週期很特殊,咱們有五個星期的時間來完成同一個里程碑。延長的時間給了貢獻者更多的時間來計劃和決定他們各自功能的畢業。
貢獻者實現功能的里程碑從一般的5周延長到7周。貢獻者們多了40%的時間來研究他們的功能,從而減小了疲勞,有更多的時間來思考如何實現。咱們還注意到,最後一刻的忙碌也大大減小了。這個週期的異常請求數量也減小了--6個,而上一個發佈週期是14個。
生態系統更新
項目速度
Kubernetes DevStats 儀表盤(https://k8s.devstats.cncf.io/...,以及一套使人印象深入的預配置報告,從我的貢獻者到拉動請求生命週期時間。若是你想從 Kubernetes 和 CNCF 社區收集數字、事實和數據,它是最好的開始。
在4月到8月的這個發佈週期中,有382家不一樣的公司和超過2464名我的爲Kubernetes 作出了貢獻。查看 DevStats(https://k8s.devstats.cncf.io/...,能夠了解更多關於 Kubernetes 項目和社區的總體速度。