OpenStack vs Kubernetes

关系

简单来说,Kubernetes 管理容器,OpenStack 管理虚拟机

所以两者可以配合使用:将 Kubernetes 的容器部署在 OpenStack 的虚拟机上。这样就实现了 “在虚拟机中使用虚拟机”,提升了隔离性,但降低了性能。

K8s也可以直接用在物理机集群的,所以K8s再发展下去,OpenStack地位是不是有点危险了

OpenStack是个什么东西

早期云计算就 AWS 一家独大,后来出现了开源的 OpenStack 与其竞争,国内也有像阿里云、腾讯云等。可以简单认为,OpenStack 可以将多个物理机组成一个硬件资源池,然后使用这些资源创建一堆虚拟机供用户使用。当然不仅仅是虚拟机的管理,OpenStack 还要负责这些资源的分配、网络的配置等等。

就像 SpringBoot 框架的各项功能的实现都是各种 Starter 实现的,OpenStack 也只是一个框架,其各种功能由不同的模块实现。例如对于虚拟机的创建,就可以使用 KVM、Xen 或其他的虚拟化工具实现

参考:OpenStack介绍

虚拟机 vs 容器

KVM(Kernel-based Virtual Machine),linux系统集成的开源虚拟机管理软件,可以类比为 Vmware 等。你可以用它来将多台物理机组成一个资源池,然后创建和管理虚拟机。用它创建的虚拟机会直接使用内核调用,而不是模拟内核调用,提高了虚拟机的性能

不同于虚拟化技术要完整虚拟化一台计算机,容器技术更像是操作系统层面的虚拟化,它只需要虚拟出一个操作系统环境。

LXC技术就是这种方案的一个典型代表,全称是LinuX Container,通过Linux内核的Cgroups技术和namespace技术的支撑,隔离操作系统文件、网络等资源,在原生操作系统上隔离出一个单独的空间,将应用程序置于其中运行,这个空间的形态上类似于一个容器将应用程序包含在其中,故取名容器技术。

https://zhuanlan.zhihu.com/p/514313956

参考:VMware/KVM/Docker的区别

Leave a Comment