這篇分享希望能讓你了解
VMware 針對K8S應用所推出的新世代管理平台,如何解決維運與開發團隊在虛擬化和容器
環境中所面臨的挑戰與困境
本篇分享內容包含以下
1.前言
2.Tanzu介紹
前言
在上一篇中我們提到了企業在虛擬和容器兩套環境管理上的困難,而 IT架構要從既有虛擬化平台完全遷移到容器架構上,至少需要20年才能完成這樣的轉型,因此,不論企業是在找尋移轉過渡期中的方案,或是採取兩套環境的共存管理的方式,在虛擬化平台中深受用戶信賴的VMware,推出一套VMware with Tanzu的產品,將虛擬化與容器化整合為一個共享平台,可以共同管理虛擬機和容器應用服務。
Tanzu介紹
Tanzu是2019年所推出的產品服務組合,是VMware在K8s市場的策略佈局,希望能夠改變企業構建、執行、管理Kubernetes的方式,這個產品名稱源於兩處,一是來自日文,意思是可移動的模組化櫥櫃(Tanzu,簞笥),另一個則是出於斯瓦希裡語,具有不斷分叉的樹枝之意。
其中,在Tanzu產品線包含了建置面(Build)、執行面(Run)和管理面(Manage)這三個部分。建置工具瞄準的是現代化的應用,主要以Bitnami和Pivotal的技術為主,可以涵蓋傳統應用、開源應用和雲端原生應用;執行工具主要是提供一套可用於內部、公有雲和邊緣環境的企業級K8s;而管理工具的目標則要能跨多雲、多叢集和多團隊,支援開發者和IT所需的K8s。
在本篇中,將著重於Tanzu在執行面上,說明VMware如何將K8S的操作邏輯與平台整合,將過去我們所熟悉的vSphere基礎架構平台,升級成可以同時管理虛擬機和容器的新世代平台Supervisor,協助維運與開發團隊能因應現代化的應用進行調整。
ESXi 原生 Pod,打破既定效能印象
Container Runtime for ESXi
Tanzu在 vSphere 環境中增加了一種 ESXi 原生的容器運行時環境 CRX (Container Runtime for ESXi ),CRX 是一種羽量級的虛擬機,僅包含 Linux 內核和必要的容器運行環境,Pod 就運行在 CRX 虛擬機中。ESXi hypervisor 針對 CRX 虛擬機做了專門的優化,在vSphere 環境中運行容器能夠達到跟在實體機運作上相同的性能水準,不用擔心由於多了一層虛擬化而帶來的性能損失。
在VMware所提供的性能測試數據中,ESXi 原生 Pod 比在虛擬機中運行容器 Pod 要快 30%,甚至比物理伺服器還要快上
8%,而這數據背後的原理,是VMware採取NUMA(Non-Uniform Memory Access)非一致性記憶體訪問的方式,將傳統UMA架構中的Memory Controller整合至CPU中,由 CPU 來直接管理和訪問記憶體,這種存取本地記憶體的作法,降低了CPU存取記憶體的時間。
非一致性記憶體訪問(Non-Uniform Memory Access)架構
Resource by VMware Blog
在傳統UMA架構中,CPU透過匯流排存取獨立的Memory Controller,再透過Controller訪問記憶體,從而讓拉長存取時間,同時隨著CPU性能的提高,要存取Memory Controller的CPU數越多,也越容易產生效能瓶頸,因此VMware藉由導入NUMA的記憶體存取架構,有效地提高系統效能。
一致性記憶體訪問(Uniform Memory Access)架構
Resource by VMware Blog
K8s即平台,滿足開發和運維團隊的需求
透過宣告式進行服務建置與資源調度
Resource by VMware blog
Supervisor平台讓開發人員可以採用YAML檔案,透過K8s API管理和調度容器的生命週期,包括 Kubernetes Cluster 、Pod、虛擬機、資料庫等,然後使用他們熟悉的 kubectl 來部署這些資源物件,不需像過往依賴於運維團隊來為他們創建所需要的基礎架構,可以更加快捷便利地獲得所有的資源,大大提高了對於業務的回應速度。
而維運管理人員也可採用YAML檔案,透過vSphere API管理和調度VM虛擬主機的生命週期,同時也可以在熟悉的平臺上管理新增的容器應用,不需要改動現有的運維流程,也不需要去學習新的管理工具,就能實現對於現代應用的支援。
以應用程式為中心的管理邏輯
以應用程式為中心進行管理與設定
Resource by VMware blog
在傳統的虛擬化基礎架構著重的是「VM虛擬主機」,但現代應用往往是由幾十個甚至更多的虛擬機和容器所組成的,管理員需要針對每一個虛擬機來配置運行參數,如是否需要加密、存儲可靠性等級、虛擬機的保護機制等等,這樣不僅費時費力,並且很難保證一致性。
Tanzu用了 Kubernetes 中 Namespace 概念來管理應用,每一個應用都有一個對應的 Namespace,其中包含了組成該應用的所有虛擬機和容器,可以針對整個 Namespace 來指定該應用的服務品質等級、安全性要求、可用性參數、存取控制許可權等運行參數,管理人員能夠以Namespace為中心進行管控,例如硬體資源的使用率、網路資料傳輸安全性、工作負載可用性、機敏資料存取管控等等。