Kubernetes是基于容器Docker构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用。也是一个将众多容器抽象为一台机器这样的服务。OpenStack是云计算平台,提供IaaS的服务。
它们到底是什么关系?
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集群的方案。
首先,Kubernetes是基于容器的调度平台,Openstack则是基于虚拟机的,二者调度的对象是不同的。所以从本质上讲,二者都是基础资源的调度平台,但是调度的对象不一样。
* 版权声明 :社区问答内容由互联网用户编辑提交,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌侵权、暴力、色情、反
动等言论,欢迎发送邮件至: 进行举报并提供初步证明,一经查实,本社区将立刻删除相关内容。