Quantcast
Channel: InfoQ - 促进软件开发领域知识与创新的传播
Viewing all articles
Browse latest Browse all 1638

基于kubernetes的VM解决方案探讨

$
0
0

一、背景

eBay从2015年就开始适配kubernetes平台并逐渐部署各个团队的产品。然而eBay仍然部署着很大规模的OpenStack集群。同时管理kubernetes集群和OpenStack集群需要耗费更多的人力和物力。但由于eBay内部还有一部分业务无法迁移到容器,我们能否用一套控制平面(control plane)同时管理容器和虚拟机呢

二、已有的方案

在几年的时间里,kubernetes不断发展壮大,各个功能逐渐完善,越来越多的公司基于kubernetes构建云平台。在eBay内部,越来越多的产品基于kubernetes构建,因此用kubernetes来统一云平台是大势所趋,我们需要一种方案来基于kubernetes管理虚拟机

现在社区有两套相对成熟的基于kubernetes来管理虚拟机的方案,分别是kubevirt和virtlet

1. Kubevirt

Kubevirt是redhat发起的项目,它使用CRD去描述一个VM(Virtual Machine,虚拟机),通过它的控制器(controller)去把CRD转换成一个POD。由于它使用的是CRD而不是POD,导致需要额外的控制器来实现kubernetes里**原生的部署和服务(deployment,service)这些功能。VM的实例运行在容器(container)**里,一个VM有对应的libvirt来管理。Kubevirt的社区比较活跃,但版本还在较早的阶段。

2. Virtlet

Virtlet来自于Mirantis,跟kubevirt的不同之处在于它使用POD来描述一个VM。因为kubelet是通过CRI接口跟下面的运行时交互的,virtlet实现了一套VM的CRI。因为POD是kubernetes的一等公民,任何现有的kubernetes功能都可以用于virtlet管理的VM,且不需要额外的控制器,比如服务、部署等等,这样几乎不需要额外的学习和维护成本。但因为一些VM特定的信息无法完全用POD来描述,virtlet借助了POD的注解(annotation)来表达更多VM的信息。


Viewing all articles
Browse latest Browse all 1638

Trending Articles