1. 程式人生 > >綜評:5個方面看剛剛釋出的Kubernetes 1.12

綜評:5個方面看剛剛釋出的Kubernetes 1.12

 

 

Kubernetes專案在過去幾年中發展迅速,並且作為容器編排和管理解決方案的領導者而備受尊重。有了這個地位,Kubernetes開發者有責任提供經過充分測試,易於維護,高效能和可擴充套件的API和工具。在即將到來的每個釋出週期中,大家都希望繼續看到社群聚焦於優先實現現有功能的成熟和穩定而不是新功能的交付。

  • 1、改善TLS

安全性是Kubernetes的基石。自Kubernetes 1.4以來,開發者一直在研究為叢集運維者提供擁有對TLS管控能力的Kubernetes控制平面元件和kubelet。

在Kubernetes 1.12中,TLS bootstrapping在普遍可用性上大放異彩!此功能大大簡化了Kubernetes向叢集新增和刪除節點的能力。

TLS bootstrapping只是故事的開始。叢集運維者需負責確保他們管理的TLS保持更新,並且可以在安全事件面前輪換。考慮到這一點,開發人員開發了一種生成CSRs(Certificate Signing Requests)並將其提交給叢集內CA(Certificate Authority)的機制。

  • 2、多租戶模式得到提高

多租戶是一種原則,即軟體可以允許以多個“租戶”的方式構建,同時保持某些方面的隔離。

通常,基礎設施運營商將通過配置隔離硬體和定義路由限制(路由表,VLAN,防火牆規則)來定義這些邊界。隨著物理,虛擬和容器化環境之間的界限不斷模糊,這一切需要進行調整。能夠在Kubernetes中使用多租戶模式意味著可以進一步利用容器編排器的規模經濟優勢,同時保證我們的租戶安全。 

而此時面臨的一個問題是如何確定一個租戶的工作負載對整個叢集中另一個租戶的工作負載的優先順序。在此Kubernetes 1.12版本中,可以通過新的ResourceQuotaScopeSelector功能支援各種資源配額的優先順序。這增強了Kubernetes1.11中提供的優先順序分配功能。 

在網路安全方面,兩個NetworkPolicy元件已GA:egress和ipBlock。

Egress,顧名思義使管理員能夠定義網路流量如何離開Pod以及網路中可以傳輸流量的部分。ipBlock功能允許在NetworkPolicy定義中定義CIDR範圍。

  • 3、自動擴縮功能趨於成熟

HPA(Horizontal Pod Autoscaler)和VPA(Vertical Pod Autoscaler)類似於那些非容器化自動縮放原理,其中pod可以分別通過建立/刪除pod或擴充套件/收縮pod的資源請求來對負載的變化做出反應。這些功能有助於減少叢集運維者配置額外計算節點以處理容量問題時的工作量。

對於Kubernetes 1.12,HPA改進了演算法,以幫助確保容器數量更快地達到適當的大小。此外,新版HPA API(v2beta2)改進了對在更廣泛的情況下使用自定義指標的支援,以確定何時需要增加或減少pod count。

VPA是Kubernetes叢集的可選外掛元件,已向beta版發展,繼續保持現有生態系統元件的穩定性。

  • 4、CSI支援繼續進化

隨著越來越多的有狀態工作負載轉移到Kubernetes中,提供一個穩定的框架來向叢集提供儲存變得非常重要。CSI(Container Storage Interface)就是這樣框架,並在幾個釋出週期中得到了持續的改進。

儲存呈現的一個關鍵特徵是考慮儲存相對於pod的位置。物理位置上遠離Kubernetes的儲存會引起延遲和可靠性問題。為了解決這個問題,CSI現在支援拓撲感知的概念,並且此功能在Kubernetes 1.12中轉為beta版。這意味著狀態工作負載現在可以概念性地瞭解儲存資源的儲存位置,無論是架構,資料中心還是可用區域。

  • 5、為kubectl構建可擴充套件框架

kubectl外掛在此版本中作為alpha版引入。這個設計類似於git風格的外掛。隨著運營者對kubectl的日常使用變得更加根深蒂固,適合常見用例的模式已得到開發,例如在特定名稱空間中定位kubectl命令。 

使用kubectl外掛,開發人員可以在不融入核心kubectl程式碼庫的情況下擴充套件到kubectl,以適應他們的管理方案。這將使團隊能夠以更一致的方式更快地開發和提供kubectl功能。