当前位置: 首页 > article >正文

Kubernetes KubeVirt 让容器和虚拟机一起工作

在不讨论容器与虚拟机的优缺点的情况下,每个虚拟机或都包含其完整操作系统的实例,并且可以像独立服务器一样运行。相比之下,在容器化环境中,多个容器共享一个操作系统实例,而且绝大多数都是类Linux操作系统。

并非所有应用程序服务都能在容器中良好运行,因此企业需要同时运行这两种服务。

例如,对于LDAP/Active Directory应用程序、标记化应用程序和具有密集GPU需求的应用程序,虚拟机比容器更好。您可能还有一个遗留应用程序,由于某些原因(没有源代码、许可证问题、使用小众语言等)无法实现现代化,因此必须在虚拟机中运行,也有可能需要在特定的操作系统(如Windows)运行。

无论应用需要虚拟机或容器的原因是什么,运行和管理多个环境都会增加操作的复杂性,需要单独的控制平面和可能单独的基础架构技术栈。如果您需要运行一个或一小组虚拟机,那么这似乎不是什么大事。但如果您有许多这样的应用呢?如果您需要跨不同的云环境运行这些应用程序的多个实例,该怎么办?您的运维操作可能会很快变得非常复杂。

如果可以将虚拟机作为Kubernetes环境的一部分来运行,那不是很好吗?

这正是KubeVirt能够为您做到的。在这篇文章中,我将介绍KubeVirt是什么,使用它的好处,以及如何集成这项技术,以便您可以立即开始使用它。

什么是KubeVirt?

KubeVirt是一个Kubernetes插件,它为Kubernetes提供了在与容器相同的基础结构上提供、管理和控制虚拟机的能力。KubeVirt是由云原生计算基金会(CNCF)赞助的开源项目,目前正处于孵化阶段。

KubeVirt使Kubernetes能够使用与容器化工作负载相同的工具来调度、部署和管理虚拟机,从而消除了使用不同监视和管理工具的单独环境的必要性。为虚拟机和Kubernetes一起工作提供了可能。

使用KubeVirt,您可以声明:

创建虚拟机

在Kubernetes群集上调度虚拟机
在这里插入图片描述

启动虚拟机

停止虚拟机

删除虚拟机

虚拟机运行在Kubernetes pod中,并利用标准的Kubernetes网络和存储。

Kubernetes 架构

要更深入地连接KubeVirt的工作原理和所涉及的组件,请在kubernetes.io中查看KubeVirt的博客。

KubeVirt的优势有哪些?
KubeVirt与Kubernetes现有的功能和工具(如监控、日志记录、警报和审计)集成,主要优势包括:

集中式管理:使用一组工具管理VM和容器。

没有虚拟层性能损失:无需为虚拟机创建硬件虚拟层。

可预测的性能:KubeVirt使用Kubernetes CPU管理器将vCPU和RAM对应到虚拟机上,以满足需要可预测延迟和性能的应用。

虚拟机CI/CD:使用和容器应用相同的CI/CD工具集成和交付虚拟机应用。

授权管理:KubeVirt提供了一组基于RBAC的集群身份规则,用于管理访问KubeVirt资源的用户授权。

对VM和容器的集中化管理,简化了基础架构技术栈,并提供了各种好处。例如,采用KubeVirt可以消除对虚拟机和容器的不同流程,从而减少DevOps团队的运维工作,加快日常运维操作。此外,当更多虚拟机迁移到Kubernetes时,可以明显感觉到软件和实用程序使用成本的下降,更不用说虚拟层性能损失了。从长远来看,通过利用Kubernetes打包和调度虚拟应用程序的能力,您可以减少基础架构的资源消耗。

Kubernetes和KubeVirt提供更敏捷的部署速度、更低的成本和更简便的管理。使用Kubernetes自动化VM的生命周期管理,有助于整合虚拟化和容器化两者类型应用的CI/CD流程。通过统一使用Kubernetes对所有应用进行自动化测试和部署,可以减少部署应用时出错的风险并实现更快的迭代速度。

KubeVirt:挑战和最佳实践

在部署KubeVirt的时候有几个地方需要注意。首先,正如我上面提到的,之所以通过虚拟机,而不是容器来管理应用的原因之一就是应用需要使用例如GPU这样的专用硬件。在这种情况下,您需要确保集群中至少有一个节点包含必要的硬件,然后将包含VM的pod固定到具有该硬件的节点上运行。

与任何Kubernetes附件一样,当你有多个集群且运行在不同的环境中时,KubeVirt的管理复杂性也会大大提高。你需要确保KubeVirt在每个集群中以相同的方式部署,并且有可能会根据不同集群的硬件环境进行定制化部署。

最后,掌握Kubernete技能的技术人员现阶段仍是很紧俏的。而在KubeVirt上运行VM需要能够理解和编辑YAML配置文件。因此需要确保在KubeVirt上部署VM的从开发人员和运维人员都掌握相关的技能和工具。


http://www.kler.cn/a/415236.html

相关文章:

  • MySQL5.6升级MySQL5.7
  • React中高阶组件HOC详解
  • 华为仓颉编程环境搭建
  • 【Python】Uvicorn服务器
  • 企业后端多租户管理平台
  • BASLER工业相机维修不能触发拍照如何处理解决这个问题
  • NeuIPS 2024 | YOCO的高效解码器-解码器架构
  • redis下载、基础数据类型、操作讲解说明,持久化、springboot整合等
  • 【jvm】C2编译器
  • CrystalDiskInfo:硬盘健康监测工具简介和下载
  • AIGC--------AIGC在医疗健康领域的潜力
  • Matlab mex- setup报错—错误使用 mex,未检测到支持的编译器...
  • 软件工程第15章小测
  • 智能化Kubernetes管理:AI与ChatGPT提升运维效率的创新实践
  • 评委打分项目
  • C++笔记之构造函数声明只需要写明需要的参数,不需要列出所有成员变量、可以使用成员初始化列表初始化所有需要的成员变量
  • 保持角色一致性!flux新模型redux用法(含模型与工作流)
  • 在 Ubuntu 20.04 上安装和使用GCC/G++
  • Ps:存储 Adobe PDF - 安全性
  • 如何使用Edu邮箱获取Adobe免费福利
  • 视频汇聚平台Liveweb国标GB28181视频平台监控中心设计
  • 整型数据类型存储空间大小
  • Linux——基础命令(2) 文件内容操作
  • 丹摩|丹摩智算平台使用教学指南
  • 【游资悟道】-作手新一悟道心法
  • 【模块一】kubernetes容器编排进阶业务容器化案例