OpenStack和Docker的关联
如果使用Docker后,还需要OpenStack吗?
深度解析OpenStack和Docker的系统集成
Kubernetes和OpenStack到底是什么关系?
基于OpenStack和Kubernetes构建组合云平台—网络集成方案综述
简单的说,kubernetes是管理container的工具,openstack是管理VM的工具。
container可以运行在物理机上,也可以运行在VM上。所以kubernetes不是需要openstack的支持。但对于云计算来说,很多IasS都通过openstack来管理虚拟机。然后用户可以在这些虚拟机上运行docker,可以通过kubernetes进行管理。
Kubernetes层,我们定位为上层,以应用为中心,更专注于上层微服务架构,运用它的交互和管理。OpenStack是一个IaaS平台,擅长管理底层资源,包括网络、计算、存储。我把它定位到专注于底层基础设施的编排、管理和调度。两个分工不一样。融合之后想达到的愿景,优势互补,达到1+1大于2的效果。
底层是OpenStack平台的计算存储网络资源管理,中间是容器平台,容器平台现在有两种主流的部署方式,一种是把容器集群部署到虚拟化平台之上。另外一个是把容器集群直接部署到物理机上。容器平台和OpenStack平台和Kubernetes平台之间采用网络解决方案,存储这块也是采用统一的存储解决方案,通过OpenStack的Manila、Cinder来构建统一的存储服务,搭好平台还可以做很多工作,上层相关,从管理界面可以做统一的管理试图。在编排层可以做统一的编排。另外就是构建统一的应用中心,可以做统一的应用中心发布我所有的应用。另外和一体化平台整体相关的,能做的工作很多,包括监控报警、日志管理等都可以做到一体化统一的管理。自动部署,现在OpenStack有一个项目Magnum,通过调用OpenStack Heat编排工具快速部署Kubernetes平台,实现K8S平台的快速自动的部署。这是整个平台的架构。现在不建议使用openstack原生的Magnum项目,直接在openstack创建实例,将k8s集群部署到实例。
Kubernetes 面向应用层,变革的是业务架构,而 OpenStack 面向资源层,改变的是资源供给模式。使用容器且集群规模不大,直接用 Kubenetes 就可以;集群规模大,不管应用是否只是跑在容器中,都是 OpenStack + Kubernetes 更好。
OpenStack + Kubernetes 是各取所长,并不只是因为惯性,而是对于多租户需求来说,Container(容器)的隔离性还需要加强,需要加一层 VM(虚拟机) 来弥补,而 OpenStack 是很好的方案。不过,VM + Container 的模式,必然有性能的损耗,所以 OpenStack 基金会也推出一个项目叫 Kata Containers,希望减少虚拟化的开销,兼顾容器的性能和隔离性。
OpenStack主要的组件服务