如同Google先前所規畫每季推出一大新版本的步調,新版Kubernetes 1.7版也正式在6月底上線。在先前,參與Kubernetes開發的Mirantis就已經預告,相比1.6版只是鎖定加強既有功能穩定性,新版本更著重於新功能,像是叢集聯邦、安全及容器網路。

果不然其然,針對新版的釋出,Kubernetes官方使用了里程碑一詞形容,無論在資安、儲存,或是系統的擴充性都有所進步,例如,在此版本開始支援資料加密,更在Runtime增加了一個整合層(Aggregation Layer),讓開發者可以自行串接第三方API,擴大容器生態系。針對Kubernetes下Pod間的通訊,設定統一網路政策進行管控,「而這些新功能的推出,都源於企業在條件嚴苛的正式環境中導入Kubernetes。」

1.7版新推資料加密功能

在資訊安全方面,其中一大重要亮點就是開始支援資料加密,Kubernetes表示,只有1.7版之後的版本才支援此功能。未來企業若想要升級至1.8版,必須先把資料解密才能進行升級。

另外,API伺服器所儲存的稽核日誌(Audit Logs),系統管理員可藉此追溯事件的起因、發生時間等紀錄。而此功能也支援管理者利用系統事件作為條件過濾Log紀錄。

再者是新增的節點授權工具(Node authorizer),在Kubernetes的運作上,每個節點都會部署一個kubelet作為代理程式(agent),收集節點上容器、Pod的運作狀況,確保與開發者所設定的狀態一致。利用新的節點授權工具,使用者可限制每個Kubernetes節點上Kubelet的執行權限,像是存取機密資料、Pod或是其他物件。

而網路政策API功能也進行加強,目的在於規範旗下運作的Pod,彼此間如何進行溝通,或是管理Pod與其他網路端點設備的通訊。在1.7版中,Kubernetes利用新推出的網路套件,實作網路政策API的管理功能,讓開發者可以自行設定相關規定,對部分Pod的通訊功能進行管控。

有態應用程式可自動更新

新版Kubernetes也加強支援有態系統的應用。其中一個新Beta功能是StatefulSet Updates。Kubernetes解釋,此功能讓Kafka、Zookeeper、etcd等應用程式自動更新,或是執行滾動式更新。此外,StatefulSet Updates還可用更新容器映像檔、標籤(限定Pod只能在特定叢集上運作的功能)。

另外,Kubernetes也加強先前1.5版中推出的StatefulSet功能的效能,它的用途為安排系統部署、水平擴充的任務調度。為了加速水平擴充速度、應用程式啟動時間,「現在系統排程不受限於Pod管理政策,對於增進效能有非常大的影響。」

同時,新版本也開始實驗本地儲存的功能,目前仍處於Alpha版的階段。開發者可以透過兩組API資源,分別是PVC(PersistentVolumeClaim)以及PV(PersistentVolume)物件,存取本地磁碟。

新增API整合層 可以串接第三方API

除了加強資安以及支援有態應用,加強系統擴充性也是一大特色。新版在Runtime層級實作了一個API整合層,讓進階使用者可以在叢集中導入第三方或是自建的API,或是使用Kubernetes內建的設計,「對擴充性而言,此功能非常具有威力。」

另外,Kubernetes也設計新的遠端程序呼叫(RPC),直接從Runtime取得容器運作的指標(metrics),藉此加強容器Runtime介面(Container Runtime Interface,CRI)。同時,目前CRI也已和containerd整合,雖然處於Alpha階段,但已通過驗證測試,已經開始支援Pod的生命周期及映像檔管理。


Advertisement

更多 iThome相關內容