在 K8S 上也能跑 VM!KubeVirt 簡介與建立(介紹篇)

Jul 20, 2022 Eddie yen

Photo by Alvaro Reyes on Unsplash

Kubevirt Logo

KubeVirt 是一個 K8S 套件專案,隨著微服務與雲原生這幾年的發展,它被部分企業視為能夠促進雲原生更進一步的發展,以及讓傳統企業踏入容器化的第一步;另外在部分還使用傳統大型 VM 環境的企業,已漸漸考慮使用 KubeVirt 做為取代方案。

KubeVirt 起源於 2017 年,由 RedHat 所主導的「容器化 VM」解決方案,其構想是希望能夠在 K8S 環境上,建構一套可以透過容器來啟動 VM 的解決方案。之所以會有此構想,在於部分類型的服務與運作架構還不適合在容器下運作、或者是架構過於龐大或複雜,導致轉型成微服務相較困難,但又不希望同時具有兩種以上截然不同的運算叢集需要管理,所想出來的解決方案。

KubeVirt 除了具備傳統 VM 都有的功能外,還具有部分與容器接近的特性與功能,從而可以與 K8S 上的其他容器溝通互動。

目前已發展到 v0.53 版本,儘管主要還是以 RedHat 的 OpenShift 平台發展為開發目標,但目前也可以在其他已裝好 K8S 環境的 Linux 平台上獨立安裝,只要注意 KubeVirt 與 K8S 版本之間的配合即可,不論標準 K8S、miniKube、或是 MicroK8S 等都可以安裝。另除 OpenShift 外,部分廠商如Platform9 也加入了 KubeVirt 功能進自身平台中。


KubeVirt 運作架構

KubeVirt套件運作關係圖
KubeVirt套件運作關係圖

KubeVirt 主要由以下套件組成:

可以注意到,KubeVirt 本身僅在於管理 VM 的狀態與尋找需提供 VM 要的資源,實際上資源來源、Scheduling 功能等等,本質上還是由 K8S 本體負責,包括 PV/PVC、StorageClass、網路、VM 所分配到的節點位置等;而在Scheduling 所包含的指派節點、使用專屬資源以及 Affinity 設定等,一樣是透過 match 等 API 定義,讓 K8S Scheduler 去做分配。

我們再切入到細一點。可能有人會問,那麼 KubeVirt 的 VM 建立跟一些也同樣容器化、如 Openstack 這種開源大型雲端叢集架構的差異在哪呢?畢竟一些 Openstack 部署專案如 Kolla、Triple-O 也同樣把服務都容器化了,這之間有什麼不同?

就 VM 運作架構上來說,KubeVirt 與運作架構容器化的 Openstack 的差異,在於:

KubeVirt 儲存類型

KubeVirt 在儲存類型的支援上,也與 K8S 一樣,分為非永久儲存、永久儲存和定義儲存三類,並且大部分的類型跟 K8S 的方式是差不多的。

非永久儲存類:

永久儲存類:

定義儲存類:

這些儲存類型要如何使用,之後會有篇幅介紹。這邊只先說明,針對 PVC/DV 的部分,KubeVirt 強烈建議搭配 StorageClass 來使用,因此使用 KubeVirt 時,也建議自身的 K8S 環境先裝好符合自身需求的 CSI 套件並建立好 StorageClass。

KubeVirt 網路

由於 KubeVirt 本身共用不少 K8S 的功能,因此在網路上,自然也會共用 K8S 本身的網路,這其中又分為前端與後端兩類。前端指的是 VM 在 virt-launcher、也就是 Libvirt 設定連接的網路,後端指的是 virt-launcher 與 K8S 網路的連接,包括 K8S 預設的 CNI 網路。

KubeVirt 主要支援的「後端」網路類型有這兩種:

Pod網路連接架構 (CNI=Calico)
Pod網路連接架構 (CNI=Calico)

Multus網路連接架構 (Bridge模式)
Multus網路連接架構 (Bridge模式)

在「前端」網路中,大多是使用 QEMU 及 Libvirt 提供的網路模式為主,種類如下:

KubeVirt 官方建議,後端使用 Pod 模式的情況下,建議前端模式使用 masquerade;而後端使用 Multus 模式下,則依照需求使用適合的前端模式。

下一篇文章,將繼續介紹如何部署 Kubevirt!


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

雙子星雲端除了既有的產品 AI Console 與 Gemini API Gateway 之外,也提供企業諮詢與導入雲原生與 Kubernetes 相關技術服務,協助企業擁抱 Cloud Natvive,達到數位轉型的目標。


相關文章

回雙子星技術部落格列表

Gemini AI Console

熱門文章


kubernetes professional service

關於我們

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

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