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