盡管Kubernetes的最新版本的發布有些延遲,但新的Kubernetes 1.19版正式發布,并進行了一些更新來增強Kubernetes的生產就緒能力。新的改進包括Ingress和seccomp功能的普遍可用,安全性改進,比如對TLS 1.3支持等等。而且從從Kubernetes 1.19版本開始,支持周期將正式延長為一年。來一起了解下Kubernetes 1.19的變化。
Ingress和seccomp普遍可用
Ingress最初是作為Kubernetes 1.1測試版的API引入的。該特性允許用戶控制對集群中服務的外部訪問,以公開HTTP和HTTPS路由。它還可以幫助管理負載均衡、終止SSL/TLS并提供基于名稱的虛擬主機功能。要使Ingress資源發揮作用,必須使用一個Ingress控制器。Kubernetes目前支持和維護GCE和nginx控制器。
在版本1.19中,Ingress升級為通用版本,并被添加到networking v1 api中。這次更新帶來了v1 Ingress對象中的一些關鍵更改,包括模式和驗證更改。
seccomp(安全計算模式)升級到了普遍可用。seccomp是Linux內核中的一個安全工具,它限制了應用程序可以進行的系統調用的數量。它最初是在1.3版本中作為Kubernetes特性引入的,但有一些限制。以前,在將seccomp概要文件應用到pods時,需要在PodSecurityPolicy上添加注釋。
在此版本中,seccomp引入了一個新seccompProfile字段,該字段添加到了pod和容器securityContext對象中。為了確保Kubelet向后兼容,將以優先級順序執行seccomp配置文件:特定容器字段,
特定容器注釋,Pod-wide字段,Pod-wide注釋。
在這次更新中,pod沙箱容器還配置了一個單獨的運行時/默認seccomp配置文件
支持TLS 1.3
Kubernetes 1.19版本增加了對新的TLS 1.3密碼的支持,可以與編排一起使用。
引入節點調試
Kubernetes 1.19引入了該kubectl alpha debug命令,現在可以在alpha中使用。這個命令將在主機OS名稱空間中創建并運行一個新的pod,以排除節點故障。用戶現在可以檢查正在運行的pod,而不必重新啟動它。此外,用戶不再需要進入容器本身來檢查系統或初始化操作,比如調試實用程序或來自pod網絡名稱空間的初始網絡請求。這種增強消除了節點維護和調試對SSH的依賴
結構化日志
在1.19版本之前,Kubernetes控制平面中的日志記錄功能無法保證日志消息以及日志內對于各Kubernetes對象的引用保持統一的結構。這導致日志記錄的解析、處理、存儲、查詢及分析變得非常困難,也迫使管理員及開發人員在很大一部分情況下,只能通過自行編寫的正則表達式臨時解決問題。也正是這樣的狀況,導致Kubernetes上的各類基于日志的分析型解決方案難以實現、也難以維護。
功能增強遠不止以上的變化,新版本包含了33項增強功能,其中12項已經邁進穩定版本,18項處于beta階段,另有13項處于alpha階段。重要的穩定版本變化包括:Seccomp,Kubelet客戶端TLS證書輪替,限制節點對API的訪問,Ingress畢業為V1穩定版,無需Docker構建Kubelet等等。