用 Forklift 將虛擬機遷移到 Kubernetes 上
2017 年,KubeVirt 團隊 發起 了一個在 Kubernetes 中管理容器及相關的虛擬機(VM)的項目。這個開源項目的意圖是讓虛擬機成為這個環境中的一等公民。
自從在 2018 年開源峰會 上推出以來,KubeVirt 一直在不斷成熟和發展。它在 GitHub 上已經達到了 200 多顆星,甚至在 2021 年 2 月推出了自己的活動:KubeVirt 峰會。
![KubeVirt architecture](/data/attachment/album/202106/25/113020ukf33q6q49wpfqap.png "KubeVirt architecture")
KubeVirt 架構(© 2020,Red Hat OpenShift)
KubeVirt 是 OpenShift 虛擬化 的基礎,它幫助開發者將虛擬機帶入容器化工作流程。
在 Kubernetes 中使用虛擬機
KubeVirt 使你能夠在虛擬機上原生使用 Kubernetes。這意味著它們可以連接到使用標準 Kubernetes 方法(如服務、路由、管道等)訪問的 吊艙 網路。應用於虛擬機吊艙的網路策略與應用於應用吊艙的方式相同,它提供一個一致的模型來管理虛擬機到吊艙(或反之)的通信。
這方面的一個真實例子是一家航空公司利用舊的模擬器軟體的方式。它注入了人工智慧和機器學習 (AI/ML) 的模型,然後在基於虛擬機的模擬器上自動部署和測試它們。這使得它能夠使用 Kubernetes 和 Kubeflow 完全自動化地獲得測試結果和新的遙測訓練數據。
![VM-creation workflow](/data/attachment/album/202106/25/113021fdupdkyyzdmpcy3g.png "VM-creation workflow")
(Konveyor, CC BY-SA 4.0)
Konveyor.io 是一個開源項目,幫助現有工作負載(開發、測試和生產)過渡到 Kubernetes。其工具包括將容器從一個 Kubernetes 平台轉移到另一個平台的 Crane;將工作負載從 Cloud Foundry 帶到 Kubernetes的 Move2Kube;以及分析 Java 應用,使其對 Kubernetes 等容器化平台中的運行時更加標準和可移植,從而使其現代化的 Tackle。
這些工具在轉化模式中很有用,但許多項目希望在早期階段利用 Kubernetes,以變得更加敏捷和富有成效。在基礎設施方面,這些好處可能包括藍/綠負載均衡、路由管理、聲明式部署,或(取決於你的部署方式)由於不可變的基礎設施而更容易升級。在開發方面,它們可能包括將持續集成/持續開發 (CI/CD) 管道與平台整合,使應用更快地投入生產,自我提供資源,或整合健康檢查和監控。
KubeVirt 可以通過在 Kubernetes 環境中以虛擬機來運行工作負載幫助你。它能讓你的工作負載迅速使用 Kubernetes,享受它的好處,並隨著時間的推移穩步實現工作負載的現代化。但是,仍然有一個問題,就是把你的虛擬機從傳統的虛擬化平台帶到現代的 Kubernetes 平台。這就是 Konveyor 的 Forklift 項目的意義所在。
關於 Forklift
Forklift 使用 KubeVirt 將不同來源的虛擬化工作負載遷移到 Kubernetes。它的設計目標是使任務變得簡單,以便你可以從一兩台機器到數百台機器遷移任何東西。
遷移是一個簡單的、三階段的過程:
- 連接到一個現有的虛擬化平台(稱為「源提供者」)和一個 Kubernetes 環境(「目標提供者」)。
- 將網路和存儲資源從源提供者映射到目標提供者,在兩者中尋找等價的資源。
- 選擇要遷移的虛擬機,分配網路和存儲映射,制定遷移計劃。然後運行它。
如何開始
要開始使用 Forklift,首先,你需要一個兼容的源提供商。你還需要一個帶有 KubeVirt 0.40 或更新版本的 Kubernetes 環境和裸機節點(儘管為了測試,你可以使用嵌套虛擬化)。用讀-寫-執行 (RWX) 功能配置你的存儲類,並使用 Multus 配置你的網路,以匹配你的虛擬機在源提供者中使用的網路。(如果你不能這樣做,也不用擔心。你也可以選擇重新分配 IP 地址。)
最後,使用提供的操作器在你的 Kubernetes 上安裝 Forklift,並進入用戶界面,開始運行你的第一次測試遷移。
Forklift 是 Red Hat 的 虛擬化遷移工具套件 的上游版本。因此,如果你想在生產環境中使用它,你可以考慮使用該工具的支持版本。
遷移愉快!
via: https://opensource.com/article/21/6/migrate-vms-kubernetes-forklift
作者:Miguel Perez Colino 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive