用 Forklift 将你的虚拟化工作负载过渡到 Kubernetes。2017 年，KubeVirt 团队 发起 了一个在 Kubernetes 中管理容器及相关的虚拟机（VM）的项目。这个开源项目的意图是让虚拟机成为这个环境中的一等公民。自从在 2018 年开源峰会 上推出以来，KubeVirt 一直在不断成熟和发展。它在 GitHub 上已经达到了 200 多颗星，甚至在 2021 年 2 月推出了自己的活动：KubeVirt 峰会。KubeVirt 架构（© 2020,Red Hat OpenShift）KubeVirt 是 OpenShift 虚拟化 的基础，它帮助开发者将虚拟机带入容器化工作流程。在 Kubernetes 中使用虚拟机KubeVirt 使你能够在虚拟机上原生使用 Kubernetes。这意味着它们可以连接到使用标准 Kubernetes 方法（如服务、路由、管道等）访问的 吊舱 Pod 网络。应用于虚拟机吊舱的网络策略与应用于应用吊舱的方式相同，它提供一个一致的模型来管理虚拟机到吊舱（或反之）的通信。这方面的一个真实例子是一家航空公司利用旧的模拟器软件的方式。它注入了人工智能和机器学习 （AI/ML） 的模型，然后在基于虚拟机的模拟器上自动部署和测试它们。这使得它能够使用 Kubernetes 和 Kubeflow 完全自动化地获得测试结果和新的遥测训练数据。（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 项目的意义所在。关于 ForkliftForklift 使用 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本文由 LCTT 原创编译，Linux中国 荣誉推出