隨著越來越多企業開始採用容器化的應用程式、甚至是微服務,該如何在這樣的環境之下,搭配持續性儲存(Persistent Storage),已成為IT基礎架構管理面臨的挑戰之一,容器若要存取既有儲存設備的Volume,除了透過容器環境內建的儲存Volume外掛程式,像是Docker Volume Plugin,以及Kubernetes Persistent Volumes,幾家主要的企業級儲存廠商,也紛紛推出解決方案來因應這方面的需求。

例如,以全快閃儲存陣列起家的廠商Pure Storage,在2018年6月召開的Accelerate全球用戶大會上,發表可提供容器儲存即服務(Container Storage-as-a-Service)的工具,稱為Pure Service Orchestrator(PSO),採用該公司儲存陣列的企業可運用PSO來建立相關的環境,促使在企業內部管理的IT基礎架構,也能具備與外部公有雲服務類似的資源使用彈性,並且支援基於容器、微服務架構的應用程式。

        

上圖的參考架構,是Pure Storage儲存陣列與Kubernetes叢集系統的整合應用示範。
Kubernetes的部分,包含了8個節點的叢集,其中有2個是主節點(Master node),而etcd的鍵值(key-value)儲存庫執行在3個節點上,負責管理整個叢集,而在Pod內執行的應用程式與主節點、etcd系統之間,是透過API來溝通。
至於Pure Storage產品的部分,負責提供持續性儲存Volume(Persistent Storage Volumes,PV)。若要從Pure Storage FlashArray中,宣告部分儲存區作為區塊儲存空間,以及從FlashBlade來掛載NFS,可透過Pure Service Orchestrator,也就是Pure Storage的Kubernetes外掛程式來促成。

在運作上,PSO整合了Docker、Kubernetes等多種容器應用平臺──透過Pure Storage開發的Docker Volume Plugin,以及Kubernetes FlexDriver等兩套軟體,從而提供支援容器化環境的持續性儲存環境。

在底層的Pure Storage儲存陣列與上層的容器化應用程式之間,Pure Service Orchestrator扮演控制虛擬層(control plane virtualization layer)的角色,可將儲存設備的耗用轉化為儲存服務的耗用,而且,這裡整合了Kubernetes這類容器調度指揮框架,能為容器化應用程式提供持續性儲存的支援。
有了Pure Service Orchestrator的中介處理,開發人員可以更容易在企業內部環境,搭建微服務化的應用程式、平臺即服務,以及支援持續整合/持續交付(CI/CD)的應用程式發布。

同時,PSO對於此種儲存環境的產生,也提供了可自動執行、便於隨時擴展規模的方式,而為打算使用容器環境的軟體開發人員,帶來類似使用雲端服務的操作體驗。基於這樣的動態建立儲存架構,用戶不僅可橫跨多臺儲存陣列系統來擴張所需的儲存資源,也能支援變化落差極大的容器化應用環境,例如,臨時因應快速擴展至數千臺容器規模的執行需求。

         

一般而言,我們當然可以單靠儲存設備的外掛程式,來支援Kubernetes環境的運用(左圖),不過,若要因應容器對於區塊儲存與檔案儲存的使用需求,並考量容器規模可能達到數以千計、多個Pods的規模,以及動態的儲存區建立與擴充,Pure Storage認為,透過 Pure Service Orchestrator可提供容器即服務(container-as-a-service)的環境──亦即將Pure Storage儲存陣列作為後端,提供開發者所發布的Persistent Volume(PV),以及Persistent Volume Claim(PVC)。
在這樣的架構下,只需顯露出區塊儲存的儲存類別(StorageClass),當中將使用FlashArray;以及另一個基於檔案的儲存類別pure-file,當中將以FlashBlade作為後端供應者。之後,即可以此提供具有Read-Write-Many(RWX)或Read-Write-Once(RWO)屬性的持續性儲存。

在儲存系統的搭配上,PSO可跨越Pure Storage兩大產品線共同使用,能搭配多臺FlashArray、FlashBlade,或是混合兩者的架構;在儲存服務的供應上,PSO所建立的環境,可支援檔案儲存與區塊儲存等兩大類型。而且,用戶對於儲存服務當中的每一臺儲存系統,也能套用不同的組態,而獲得使用上的彈性。

上圖呈現了Kubernetes與Pure Service Orchestrator、Pure Storage儲存陣列之間的互動關係,Kubernetes提出建立Persistent Volume的請求,Pure Service Orchestrator會將這樣的請求轉換為建立儲存區的API,再傳至Fleet Provisioner──在此可匯聚多種現行狀態資料,像是效能、容量、運作正常度,也能根據不同標籤來進行撿選過濾。
而Fleet Provisioner又能連接多個「後端」,對應底層的Pure Storage儲存陣列設備,並以REST API相互溝通。舉例來說,如果現行使用的儲存陣列容量不足,需要到另一臺比較有餘裕的儲存陣列,建立儲存區,我們就可以從這裡新設置儲存Volume。

若要在PSO的架構下,調整儲存服務的規模,開發人員只需透過單一指令,就能根據他們容器化環境的成長需求,執行小型的擴充。

 

上面3張畫面示範了Pure Service Orchestrator建立容器持續儲存的指令輸入,以及從Pure Storage儲存陣列管理主控臺呈現的儲存區狀態。

若要在OpenShift Container Platform這套容器即服務平臺上,整合Pure Storage儲存陣列來提供持續性儲存空間,像是橫掛多個OpenShift叢集節點的本地Docker容器儲存,以及運用NFS檔案儲存來放置內部使用的容器映像,同時,又要能夠支援動態調度指揮的機制,我們可以透過Pure Service Orchestrator來進行。

關於OpenShift Container Platform與Pure Service Orchestrator、FlashArray的整合應用,Pure Storage公布示範的操作影片,第一步是在OpenShift環境,安裝Pure Storage提供的Kubernetes外掛程式。當中,會需要搭配對應JSON的組態描述檔案,以便在FlashArray或是FlashBlade建立持續性儲存,之後即可依照安裝指令稿(installation script)來建立OpenShift元件。

完成前面的OpenShift Container Platform的外掛程式部署作業,接著,OpenShift的使用者就能運用FlashArray或FlashBlade建立的持續性儲存,來建置各種應用程式。
而上面的螢幕截圖,主要呈現的部分,是使用者透過OpenShift的網頁介面,只需幾個簡單的滑鼠點選操作,輸入MongoDB這套應用程式的組態,即可馬上透過容器的自動產生與配置,建置一套NoSQL資料庫環境,而底層用的儲存正是坐落於FlashArray的持續性儲存。

除了針對Docker、Kunernetes、OpenShift等容器化環境的整合支援,Pure Storage先前也已陸續推出兩種自動化儲存供應與整合的解決方案,像是基於企業伺服器虛擬化所發展出來的軟體定義IT架構──VMware SDDC,以及常見的自動化組態配置與調度指揮軟體生態,像是Ansible、Puppet、PowerShell等。

 

產品資訊

●原廠:Pure Storage(02)8729-2111
●建議售價:免費
●基本軟體元件:Kubernetes FlexVolume Driver、Docker Volume Plugin
●搭配儲存系統:FlashArray、FlashBlade
●支援作業系統:CentOS 7、RHEL7、Ubuntu 16.04 LTS
●搭配軟體需求:Kubernetes、Docker、Helm
●支援容器環境:Docker、Swarm、Mesos

【註:規格與價格由廠商提供,因時有異動,正確資訊請洽廠商】


Advertisement

更多 iThome相關內容