四个用于在云原生环境中运行虚拟机的开源工具

四个用于在云原生环境中运行虚拟机的开源工具

作者:开源云中文社区 2022-07-04 12:26:00

云计算

云原生

开源 本文介绍了在云原生环境中运行虚拟机的四种开源解决方案,只需很少的重新配置或调整。

遗留工作负载是否阻止你走向云原生?这里有四种解决方案,可以在云原生环境中运行虚拟机。

许多IT专业人士想走向原生云。但是,你有传统的工作负载,比如单体,它只能在虚拟机上运行。

你可以为云原生工作负载和遗留工作负载维护单独的环境。但是,如果你能找到一种方法将虚拟机集成到你的云原生设置中,这样你就可以无缝地管理它们,不是更好吗?

幸运的是,有这样的方法。本文介绍了在云原生环境中运行虚拟机的四种开源解决方案,只需很少的重新配置或调整。

为什么在云原生环境中运行虚拟机?

在研究这些工具之前,让我们先看看为什么能够在由容器化、松散耦合、云原生工作负载组成的环境中运行虚拟机很重要。

主要原因很简单:承载遗留工作负载的虚拟机不会消失,但维护单独的托管环境以运行它们是一种负担。

同时,转换遗留工作负载以满足云原生标准可能是必须的。虽然理论上你会有时间和工程资源来重构遗留工作负载,以便它们可以在云原生环境中本机运行,但这在现实世界中并不总是可能的。

因此,你需要工具,比如下面描述的四种开源解决方案之一,让遗留虚拟机工作负载与云原生工作负载和平共处。

1. 使用KubeVirt运行虚拟机

在云原生环境中部署虚拟机的最流行解决方案可能是KubeVirt。

KubeVirt的工作原理是在Kubernetes pod内运行虚拟机。如果你想在容器旁边运行虚拟机,那么只需将KubeVirt安装到现有的Kubernetes集群中,其中包含:

exportRELEASE=v0.35.0
# DeploytheKubeVirtoperator
kubectlapply-fhttps://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-operator.yaml
# CreatetheKubeVirtCR (instancedeploymentrequest) whichtriggerstheactualinstallation
kubectlapply-fhttps://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-cr.yaml
# waituntilallKubeVirtcomponentsareup
kubectl-nkubevirtwaitkvkubevirt--forcondition=Available

然后,创建并应用一个YAML文件,该文件描述了要运行的每个虚拟机。KubeVirt在一个容器中执行每台机器,因此从Kubernetes的角度来看,VM只是一个常规的pod(有一些限制,将在下一节中讨论)。然而,你仍然可以获得虚拟机镜像、持久存储以及固定的CPU和内存分配,就像使用传统虚拟机一样。

这意味着KubeVirt基本上不需要更改虚拟机。你所要做的就是安装KubeVirt并为虚拟机创建部署,使其作为pod运行。

2.Virtlet方法

如果你想真正致力于将虚拟机视为pod,你可能会喜欢Mirantis的开源工具Virtlet。

Virtlet与KubeVirt相似,因为Virtlet还允许你在Kubernetes pod内运行虚拟机。这两种工具之间的关键区别在于,Virtlet将虚拟机更深入地集成到Kubernetes pod规范中。这意味着你可以使用Virtlet进行操作,例如将虚拟机作为守护程序集或复制集的一部分进行管理,而这是使用原生KubeVirt无法完成的(KubeVirt具有相同的功能,但它们是附加组件,而不是Kubernetes的原生部分)。

Mirantis还说,Virtlet通常比KubeVirt提供更好的网络性能,不过这很难确切知道,因为网络配置中涉及到太多变量。

3. ISIO对虚拟机的支持

如果你不想将虚拟机当作容器来管理,该怎么办?如果你想把它们像虚拟机一样对待,同时仍然允许它们与微服务轻松集成,该怎么办?

最好的解决方案可能是将你的虚拟机连接到Istio,即开源服务网格。在这种方法下,你可以使用标准虚拟机工具部署和管理虚拟机,同时仍然可以通过Istio管理网络、均衡负载等。

不幸的是,将虚拟机连接到Istio的过程相对繁琐,目前很难实现自动化。它归结为在每个要连接的虚拟机上安装Istio,为它们配置命名空间,然后将每个虚拟机连接到Istio。

4. 容器和虚拟机与OpenStack并排

到目前为止,我们所研究的技术包括采用Kubernetes或Istio等云原生平台,并向其添加虚拟机支持。

另一种方法是采用非云原生平台,运行虚拟机,然后将云原生工具移植到该平台上。

如果在OpenStack上同时运行VM和容器,就会得到这样的结果。OpenStack最初设计用于部署虚拟机(以及其他类型的资源)以构建私有云。但是OpenStack现在也可以托管Kubernetes。

因此,你可以使用OpenStack部署和管理虚拟机,同时通过Kubernetes在OpenStack上运行云原生容器化工作负载。最终会有两个编排层——底层OpenStack安装和Kubernetes环境——因此从管理角度来看,这种方法更为复杂。

然而,它的主要好处是,你可以使虚拟机和容器彼此相对独立,因为虚拟机不是Kubernetes的一部分。你也不会局限于使用Kubernetes工具来管理虚拟机。您可以将虚拟机视为标准虚拟机,将容器视为标准容器。

结论

开源生态系统提供了许多方法来帮助虚拟机与云原生工作负载共存。对你来说,最佳解决方案取决于你是想采取以Kubernetes为中心的方法(在这种情况下,KubeVirt或Virtlet是最好的选择),还是想允许虚拟机与容器共存,而不与容器紧密集成(在这种情况下,OpenStack最有意义)。如果你只想在网络级别而不是编排级别进行集成,请考虑将虚拟机连接到Istio服务网格。

原文链接:https://www.itprotoday.com/cloud-native/4-open-source-tools-running-vms-cloud-native-environment

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/231565.html<

(0)
管理的头像管理
上一篇2025-04-19 18:29
下一篇 2025-04-19 18:30

相关推荐

  • 站群服务器到底是什么意思,怎么选择比较好

    站群服务器就是一台拥有多个独立IP地址、专门用于托管和管理多个网站的高性能服务器,其核心价值在于通过独立IP降低网站间的关联风险,并提升搜索引擎优化效果,站群服务器的工作原理与适用场景站群服务器本质上是将一台物理服务器通过虚拟化或直接配置的方式,分配给多个独立IP地址,每个IP对应一个独立的网站,这些网站共享服……

    2026-07-27
    0
  • 高防服务器误封正常流量如何调整,怎么解决?

    高防服务器误封正常流量,核心调整思路是从“一刀切”转向“精细化”——通过分析业务特征,调整防护阈值、配置白名单和启用智能学习模式,让防护系统学会区分真假流量,为什么会误封正常流量误封主要源于防护策略的通用化,高防服务器通常默认启用严格防护规则,当流量特征与攻击特征库部分匹配时,就会被拦截,据行业安全白皮书指出……

    2026-07-27
    0
  • 高防服务器的防御原理是什么,如何选择高防服务器?

    高防服务器的防御原理,简单说就是通过流量清洗、防火墙规则和黑洞路由等机制,在攻击流量到达业务服务器之前将其过滤或阻断,从而保障正常访问,流量清洗机制是核心防线高防服务器对抗DDoS攻击,靠的不是单一技术,而是一套组合动作,最常见的攻击类型是流量型攻击,比如UDP洪水、SYN洪水、ICMP放大等,核心思路是耗尽带……

    2026-07-26
    0
  • BGP线路到底是什么意思呢,有什么优势?

    BGP线路是一种通过边界网关协议实现多运营商网络互联的接入方式,能自动选择最优路径,极大提升跨网访问速度和稳定性,是解决国内南北网络瓶颈的核心方案,什么是BGP线路BGP,全称Border Gateway Protocol,边界网关协议,是互联网核心路由协议之一,它负责在自治系统之间交换网络可达性信息,BGP线……

    2026-07-26
    0
  • 增值电信业务经营许可证对IDC有多重要,如何办理?

    增值电信业务经营许可证是IDC服务商合法运营的核心凭证,它直接决定了机房能否接入骨干网、客户能否放心托管业务,以及服务商自身能否长期稳定发展,许可证是IDC进入市场的硬门槛互联网数据中心业务属于增值电信业务中的B1类,依据工信部《电信业务经营许可管理办法》,任何从事服务器托管、虚拟主机、云服务等业务的企业,必须……

    2026-07-26
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注