先前Kubernetes在新版規畫中,就預告了1.6版將新增角色存取控制機制(Role-Based Access,RBAC),引起眾人高度期待這個可以讓容器叢集管理更進一步的功能。果不其然,Google今日正式釋出了Kubernetes 1.6版,如期推出了RBAC機制Beta版本,讓叢集管理員可以針對特定使用者或服務帳號的角色,進行更精確的資源存取控制。除此之外,新版本可支援的叢集規模從2,000個節點,擴大至5,000個,可支援的Pod總數量也提高到15萬個。

第一特色:擴大叢集規模,加強叢集聯邦功能

在此版本中,Kubernets總共新增了5大特色。Kubernetes早在半年前就開始採用CoreOS的組態管理、服務探查工具etcd,這次改版更將Kubernetes底層架構預設改成etcd v3版本,因此可支援的叢集規模也擴大至5,000個節點,可支援的Pod規模也增加到15萬個(Pod是由多個容器組合的一個容器包)。

Google表示,若需要規模超過5,000個叢集,或是服務靠跨多個資料中心或多雲架構,新版本還加強了叢集聯邦(Federation)功能,使用者得以組合不同區域的Kubernetes叢集,而系統會確保跨區的叢集的環境部署的一致性。

Kubernetes在1.5版中就推出的命令程式介面Kubefed仍處於Beta版,不過增加了更多本地端功能,例如開發者可以利用Kubefed指令,系統可自動完成叢集的DNS組態設定。

第二特色:靠角色存取控制機制加強安全

過去,Kubernetes是透過節點本地端的設定檔來設定權限,使用ABAC(Attribute-Based Access Control)模式,例如可透過配置設定不同帳號所能存取的API權限。

但在新版中,則新增了角色存取控制機制,可以直接用API來取得不同帳號的權限管理政策,來控制使用者帳號或服務,可將系統資源指派給特定命名空間,讓所屬帳號來存取。

對於想要將Kubernetes升級至1.6版本的企業,在系統權限控管轉換時,Google提出了兩種解法。第一種作是讓ABAC、RBAC機制並行使用。Google舉例,系統會先透過RBAC authorizer處理API請求。如果RBAC authorizer並未核准,接著ABAC authorizer則會接手。

第三特色:強化使用者對Pod的控制

新版本中,Kubernetes也加強使用者對Pod的控制程度,像是指定每個Pod一個節點標籤(Node Label),藉此限制Pod只能在特定節點、叢集中運行,目前此功能也處於Beta階段。

而節點標籤所能完成的設定不僅只是如此,開發者也能自己調整,指定特定的主機名稱、硬體架構、作業系統版本等參數。

除了限制Pod在特定節點上運作,開發者也可以將Pod排除於特定節點上運作。Google舉例,企業可藉此限制使用者只能存取部分節點,或是利用節點標籤,讓Pod在特殊規格的硬體上運作。

第四特色:儲存動態分配

1.6版現在內建了常用雲端儲存服務物件,包括 AWS、Azure、GCP、OpenStack和VMware vSphere的儲存空間,都不需要在手動配置就能使用。這也意味著,當有物件刪除釋出儲存空間時,就可以用程式自動閒置的外部儲存資源指派給新的Pod,來實現動態儲存分配的效果。

另外,Google表示,現在Kubernetes中的持久磁碟(Persistent Volume)子系統也提供兩組API資源,讓使用者、系統管理員了解儲存資源的使用現況。這兩組API分別是PVC(PersistentVolumeClaim)以及PV(PersistentVolume)物件,讓儲存可以擺脫各異質環境所制定的相異規則,使Pod可以橫跨不同的雲端、本地端環境運作。此外,Google表示,結合StorageClass物件及動態建置磁碟(Dynamic Volume Provisioning)功能,企業不需要先前準備建置作業,就可隨需建立、刪除儲存物件。

在新版本中,StorageClass也預設支援AWS、Azure、GCP、OpenStack以及VMware vSphere等環境,「使用者不需手動設置StorageClass物件。」Google表示。

第五特色:更新容器Runtime介面及背景常駐程式

「雖然使用者不見得會直接和容器Runtime、API Server直接互動,但它們是組成Kubernetes的基礎元件。」Google表示,在1.6版中負責檢查節點組態是否正確的Kubelet,現在已經支援Docker容器Runtime介面(Container Runtime Interface,CRI),不過此功能目前還處於Beta版。

此外,Kubernetes現階段也有支援其他的容器Runtime,像是符合開放容器實作標準的Cri-O、以Hypervisor為基礎的Frakit,以及CoreOS的rkt。


Advertisement

更多 iThome相關內容