在 K8S 上也能跑 VM!KubeVirt 儲存空間(上)

Oct 12, 2022 Eddie yen

Photo by Alvaro Reyes on Unsplash

Photo by Agent J on Unsplash

上一篇 中,針對 KubeVirt 已先做過簡介、建立 KubeVirt 環境以及在上面建立第一個 VM。接下來會深入探討,KubeVirt 的一些特性及與一般 VM 在儲存、網路等不同差異之處。

KubeVirt 的儲存類型與應用

在第一篇中,大略把 KubeVirt 上的儲存空間分為永久與非永久這兩類,並且簡單說明了每一個儲存類型。在本篇,將會針對這些儲存類型做比較具體的說明以及其可能的應用之處。

K8S 支援的掛載並不等於全部都可用在 KubeVirt 上!

首先必須要提到的是,KubeVirt 的服務最終型態還是以 VM 為主,因此不能將 K8S 運行容器的概念完全套用在 KubeVirt 上。 例如,K8S 容器可以在沒有 StorageClass 的情況下,手動建立 PV 與 PVC 連接後掛載進容器內使用,以及可以使用 volume 和 volumeMount 的方式,在建立 Pod 時將主機端或遠端的路徑位置掛載使用;但 KubeVirt 並不具備這樣的功能,畢竟 VM 的儲存運行主體還是以其 image 為主,兩者之間的儲存格式即存在本質上的不同。

在第一篇中,有提到 KubeVirt 支援的儲存類型分為三類,分別為非永久性、永久性和定義性三類: 非永久性:儲存空間會在 VM 建立時一同創建,但 VM 刪除時也會一併被刪除。 永久性:儲存空間本身就存在或者 VM 建立時一同創建,當 VM 刪除時,儲存空間會被保留下來。 定義性:這類儲存空間不存放任何媒體性質的資料,而是存放設定檔、密碼等等這類資訊類的資料。可對應 K8S 本身的 configMap 及 Secret。

在一般所認知的雲端環境中,非永久性儲存通常用在給客戶短期試用、或者將原先的範本包成應用服務後提供給客戶或是自身使用,而在後者的狀況中,則是根據客戶需求,另外掛載一個永久性儲存類型的媒體當作客戶需要存放的位置,或者直接提供一個永久性儲存空間來運行系統,讓客戶的長期運行服務使用。要直接類比的話,就類似於 Openstack 建立 Instance 時,從 image 建立或者從 volume 建立的差別。而定義性儲存空間,通常是做為掛載一些設定檔進去環境內,使環境啟動時不需人工登入設定,即可直接快速設定好服務的直接做法。

非永久性儲存類型

永久性儲存類型

定義性儲存類型

順帶一提,NoCloud 與 ConfigDrive 之間的差異,在於是否需要連線到雲端環境的 metadata 伺服器取得初始化內容,為 cloud-init 運作上的差異。

其他KubeVirt支援的定義性儲存類型,如 ConfigMap 與 Secret 等,基本上與K8S自身是共通的,因此這邊就不再介紹。

非永久性與永久性儲存的支援程度
非永久性與永久性儲存的支援程度

下一篇 將繼續介紹如何將儲存空間載進 VM 內變成虛擬儲存媒體時的設定。


雙子星雲端為 CNCF 會員,是 CNCF 所認證的 Kubernetes 服務提供商,在雲端技術擁有十多年以上的經驗,為台灣雲端技術早期領先者。目前為國家級 AI 雲的軟體及 Kubernetes 技術與服務提供商,更是諸多企業與單位導入容器與管理平台的最佳夥伴。

雙子星雲端已於近期推出 Kubernetes 管理平台 — Gemini Management Console,可搭配既有的產品 AI ConsoleGemini API Gateway ,也提供企業諮詢與導入雲原生 Kubernetes、CI/CD 導入等相關技術服務,協助企業擁抱 Cloud Native,達到數位轉型的目標。


相關文章

回雙子星技術部落格列表

Gemini AI Console

熱門文章


kubernetes professional service

關於我們

雙子星雲端是混合多雲技術的領導者,是國際認證之 KCSP - Kubernetes 服務提供商,同時也為 CNCF 雲原生計算基金會會員。

雙子星的雲端專家擁有 Kubernetes、OpenStack 與 Google Cloud Platform 等多項證照,我們的軟體至今已為上百家機構和數千台的 CPU/GPU 伺服器提供雲端服務。