Kubernetes 1.17帶來卷快照和更簡易的插件管理
譯文【51CTO.com快譯】Kubernetes是用于部署、擴展和管理容器的市面上最廣泛使用的開源容器編排工具之一。該工具最初由谷歌開發,現在由云原生計算基金會維護,近日迎來了版本1.17。
版本1.17是2019年的第四個也是最終版本,含有22處改進。這些功能上的改進包括:
- 14處改進進入到stable階段。
- 4處改進進入到beta階段。
- 4處改進進入到alpha階段。
不妨看一下Kubernetes的這個最新版本含有的一些新改進。
先看一下其中一項比較重要的功能。
卷快照
雖然卷快照尚未進入到stable階段,但它是許多Kubernetes管理員非常欣賞的一項功能。該功能創建持久卷的時間點副本。這些快照可用于配置新卷或將現有卷還原到以前的狀態。
但是考慮到Kubernetes已含有一個卷插件(該插件為塊存儲和文件存儲的自動化及配置、附加和掛載提供了一種功能強大的工具),為什么還要為它添加卷快照?為了回答這個問題,Kubernetes官方文檔特別指出:
所有這些功能的基礎是Kubernetes實現工作負載可移植性的目標:Kubernetes旨在在分布式系統應用程序和底層集群之間創建一個抽象層,以便應用程序可以做到與它們運行所依賴的集群的具體情況無關,應用程序部署不需要“針對特定集群的”知識。
快照操作被視為有狀態工作負載的一項關鍵功能。通過提供在Kubernetes API內觸發快照操作的方法,管理員現在可以在不必使用Kubernetes API的情況下處理用例。
想了解有關Kubernetes卷快照功能的更多信息,請參閱官方文檔。
樹內插件遷移
從版本1.17開始,Kubernetes將把樹內插件遷移到容器存儲接口(CSI)。為什么這樣?在1.17之前,Kubernetes卷插件是核心Kubernetes代碼的一部分,隨核心Kubernetes二進制文件一并提供。因此,為Kubernetes添加新的卷插件始終很困難。如果供應商想為核心添加存儲系統,就被迫與Kubernetes發布過程保持一致。這并非總是可行的。
除此之外,第三方存儲代碼可能會導致核心Kubernetes二進制文件內出現可靠性和安全性問題。
這導致將樹內插件遷移到CSI。Kubernetes開發人員提到這種遷移時說:“當Kubernetes集群管理員更新集群以啟用CSI遷移時,現有的有狀態部署和工作負載將繼續像往常一樣運行;不過在幕后,Kubernetes將所有存儲管理操作(以前針對樹內驅動程序)的控制權交給CSI驅動程序。”
其他功能
Kubernetes 1.17的其他功能包括如下:
- 按條件為節點設置污點:表示使用污點(taint)阻止調度的節點條件。
- 可配置的Pod進程命名空間:用戶可以通過在PodSpec中設置一個選項,配置Pod中的容器以共享通用的PID名稱空間。
- 動態最大卷計數:增添了對每個節點最大卷的動態和通用機制的支持。
- 在SubPath掛載中提供了環境變量擴展。
- 支持自定義資源的默認設置。
- 將頻繁的Kubelet Heartbeat移到Lease Api:Kubelet在節點上創建并定期續訂Lease,節點生命周期控制器將該租約視為運行狀況信號。
- 支持watch bookmark,以減輕kube-apiserver的負載。
- 行為驅動的一致性測試:一致性行為預先定義,與驗證那些行為的測試分開。
- 服務的終結器保護:添加終結器保護以確保在刪除相關的LB之前,不完全刪除服務資源。
- 避免為每個watcher獨立地序列化同一對象。
- IPv4 / IPv6雙棧支持。
- 可感知拓撲結構的服務路由。
- 面向Windows的RunAsUserName。
想下載Kubernetes的1.17版本,請訪問該版本的官方GitHub頁面。想了解有關新功能的更多信息,請在此處參閱完整的變更日志。
原文標題:Kubernetes 1.17 Brings Volume Snapshots, Easier Plugin Management,作者:Jack Wallen
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】