Kubernetes和OpenStack到底是什么关系?

Kubernetes是基于容器Docker构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用。也是一个将众多容器抽象为一台机器这样的服务。OpenStack是云计算平台,提供IaaS的服务。

它们到底是什么关系?

活动主持人提问于 2018-02-26 17:30
2 个回答
  • 用户93020062018-03-18 09:16

    Kubernetes  与  Openstack 都是分布式大规模虚拟化管理系统,一个是轻量级虚拟化(容器技术),一个是虚拟机技术,它们都是用来管理计算、存储、网络等资源及资源调度的,但是Kubernetes是面向应用或叫服务的(容器对应应用),openstack是面向计算的(虚拟机对应计算,云盘、网络当然也是为虚拟机服务的)。大家第一感觉登录到容器里跟虚拟机很像,然后第一反应会把容器当做虚拟机用,这其实是背离了容器的初衷。

    容器正是因为轻量和标准化的镜像技术,所以部署、迁移都非常高效,能很好滴满足微服务架构部署需要,但是还需要解决服务之间的相互发现访问、负载均衡、故障隔离等问题,这也是Kubernetes要重点解决的问题,在这一方面openstack是完全没有的,所以两者从功能上还是有很大区别的。

    当然,容器相比虚拟机的隔离也正是因为轻量(资源浪费、启动速度),没有独立内核,导致安全性没有虚拟机那么固若磐石,所以才有了hyper/clear container(现在合并为kata开源项目)这样将两者结合的虚拟容器。

    Kubernetes虽然是容器编排管理集群,但是它从一开始就是高度可扩展、标准化为原则,它可以对接各种iaas平台、存储和网络方案,而且底层支持的容器引擎接口也是标准化的(CRI),docker只是一种它支持的容器技术(因为docker将容器技术发扬广大,所以一般人直接把docker跟容器划上了等号),上面说的kata项目就是准守CRI标准提供api的,所以Kubernetes也能无缝直接支持kata运行时“容器”引擎。


    此外,我们可以把Kubernetes运行在openstack提供的虚拟化平台之上,以容器的形式提供服务,当然也可把Kubernetes直接部署在传统的物理机上,各有优缺点;此外开源社区还有用Kubernetes部署openstack集群的方案。


  • 用户19028172018-03-01 15:31

    首先,Kubernetes是基于容器的调度平台,Openstack则是基于虚拟机的,二者调度的对象是不同的。所以从本质上讲,二者都是基础资源的调度平台,但是调度的对象不一样。