关于基于openstack和k8s docker两种Paas私有云优缺点,及基于交通运输行业使用场景的考虑?

目前我们在建设公司私有云方面有两种方案,一种是基于openstack架构的,一种是基于kubernetes docker架构的,请问下这两种方案在资源部署,调配,故障处理都有哪些优缺点,适用于交通运输行业哪些使用场景,是否只在云上运行轻量化应用?

参与21

2同行回答

tt_45tt_45  技术经理 , eenese
OpenStack和Docker之间是很好的互补关系。Docker的出现能让IaaS层的资源使用得更加充分,因为Docker相对虚拟机来说更轻量,对资源的利用率会更加充分.Docker主要针对Paas平台,是以应用为中心。OpenStack主要针对Iaas平台,以资源为中心,可以为上层的PaaS平台提供存储、网络、计...显示全部

OpenStack和Docker之间是很好的互补关系。Docker的出现能让IaaS层的资源使用得更加充分,因为Docker相对虚拟机来说更轻量,对资源的利用率会更加充分.Docker主要针对Paas平台,是以应用为中心。OpenStack主要针对Iaas平台,以资源为中心,可以为上层的PaaS平台提供存储、网络、计算等资源。OpenStack按照层来分,第一层是基础设施层,这一层主要包含Nova、Glance和Keystone,第二层是扩展基础设施层,这一层更多跟基础设施相关的高级服务,主要包含Cinder、Swift、Neutron、Designate和Ironic等,其中Cinder提供块存储,Swift提供对象存储,Neutron提供网络服务,Designate提供DNS服务,Ironic提供裸机服务。第三层是可选的增强特性,帮用户提供一些更加高级的功能,主要包含Ceilometer、Horizon和Barbican,其中Ceilometer提供监控、计量服务,Horizon提供用户界面,Barbican提供秘钥管理服务。第四层是消费型服务,主要是指第四层的服务都需要通过使用前三层的服务来工作。主要有Heat、Magnum、Sahara、Solum和Murano等,其中Heat主要提供orchestration服务,Magnum主要提供容器服务,Sahara主要提供大数据服务,通过Sahara很方便地部署Hadoop、Spark集群,Solum主要提供应用开发的服务,Muarno主要提供应用目录的服务.Openstack的Kolla,主要功能是容器化所有的OpenStack服务,便于OpenStack安装部署和升级。OpenStack中和Docker有关系的项目,主要包括Nova、Heat、Magnum、Sahara、Solum、Murano和Kolla等。和Docker相关的大部分项目都在PaaS和SaaS层。Nova Docker Driver OpenStack和Docker的第一次集成,主要是把Docker作为一种新的Hypervisor来处理,把所有的Container当成VM来处理。提供了一个Docker的Nova Compute Driver,集成很简单,通过Docker REST API来操作Container。这个Driver的优点是实现比较简单,只需要把Nova Compute中的一些对虚拟机操作的常用接口实现就可以,现在主要支持创建、启动、停止、Pause、Unpause等虚拟机的基本操作。因为Nova Docker Driver也是一个Nova的Compute Driver,所以它可以像其他的Compute Driver一样使用OpenStack中的所有服务,包括使用Novascheduler来做资源调度,用Heat来做应用部署、服务发现、扩容缩容等,同时也可以通过和Neutron集成来管理Docker网络。也支持多租户,为不同的租户设置不同的Quota,做资源隔离。它的缺点也很明显,因为Docker和虚拟机差别也挺大的,Docker还有一些很高级的功能是VM所没有的,像容器关联,就是使不同容器之间能够共享一些环境变量,来实现一些服务发现的功能,例如K8S的Pod就是通过容器关联来实现的。另外一个是端口映射,K8S的Pod也使用了端口映射的功能,可以把一个Pod中的所有Container的Port都通过Net Container Export出去,便于和外界通信。还有一个是不同网络模式的配置,因为Docker的网络模式很多,包括Host模式、Container模式等等,以上的所有功能都是Nova Docker Driver不能实现的。Heat Docker Driver因为Nova Docker Driver不能使用Docker的一些高级功能,所以和Heat去集成,因为Heat采用的也是插件模式,所以就在Heat实现了一个新的Resource,专门来和Docker集成。这个Heat插件是直接通过REST API和Docker交互的,不需要和Nova、Cinder和Neutron等来进行交互。
这个Driver的一个优点首先是它完全兼容Docker的API,因为可以在Heat Template里边去定义参数,可以实现Docker的所有高级功能。另外因为和Heat集成了,所以默认就有了Multi-Tenant的功能,可以实现不同Docker应用之间的隔离。但它的缺点也非常明显,因为它是Heat直接通过REST API和Docker交互的,所以Heat Docker Driver没有资源调度,用户需要在Template中指定需要在哪一台Docker服务器上去部署,所以这个Driver不适合大规模应用,因为没有资源调度。另外因为没有和Neutron去交互,所以网络管理也只能用Docker本身的网络管理功能来实现。Mangum的主要目的是提供Container服务的,它同时还可以和多个Docker集群管理系统集成,包括K8S、Swarm、CoreOS等。和这几个平台集成的主要原因是能让用户可以很方便地通过OpenStack云平台来集成K8S、CoreOS、Swarm这些已经很成型的Docker集群管理系统,促进Docker和OpenStack生态系统的融合。Magnum其实和Nova的架构很像,Nova主要提供IaaS服务,Magnum主要提供CaaS,Nova可以管理不同类型的Hypervisor,包括VMware、KVM、PowerVM等,Magnum也一样,它可以管理不同的Docker集群管理工具,包括K8S、Swarm、CoreOS等。最终目标是期望和Nova一样,能够让用户不用关心后台的Docker集群管理工具到底是什么,只管提请求,最终通过Magnum获得自己需要的Container。Murano,用户可以通过Murano使用K8S的功能,可以通过Murano部署Pod、Service、Replication Controller等。Murano主要是在OpenStack基础上提供应用目录服务。Muarno和Solum之间其实是有关系的,Solum主要是用来开发应用的,Solum把应用开发完后,可以通过Murano来发布。用户可以通过Murano挑选自己需要的应用服务,通过应用服务组合构建自己的应用。Murano也是通过Heat部署应用。Kolla:Docker+OpenStack
主要功能是使用Docker容器快速部署升级OpenStack服务。Kolla的最终目标是为OpenStack的每一个服务都创建一个对应的Docker Image,通过Docker Image将升级的粒度减小到Service级别,从而使升级时,对OpenStack影响能达到最小,并且一旦升级失败,也很容易回滚。升级只需要三步:Pull新版本的容器镜像,停止老版本的容器服务,然后启动新版本容器。回滚也不需要重新安装包了,直接启动老版本容器服务就行,非常方便。Kolla是通过Docker Compose来部署OpenStack集群的,现在主要是针对裸机部署的,所以在部署Docker Container时,默认的网络配置都是Host模式。所以Kolla的好处就非常明显了,将OpenStack升级的粒度细化到了Service级别,升级失败时,可以很容易回滚。OpenStack和Docker相关的项目这么多,该怎么去选择呢?如果用户只是想将以前的VM Workload迁移到Docker Container,那么它可以使用Nova Docker Driver,一个很典型的例子是Sahara通过Heat调用Nova Docker Driver来创建Hadoop集群。如果用户想使用Docker的一些高级功能来部署一个小规模集群,那就可以考虑Heat Docker Driver。如果用户想通过OpenStack集成现有的一些Docker集群管理工具像K8S、Swarm来管理大规模的Docker集群,建议使用Magnum。另外因为Magnum也是基于Heat做的,所以默认也支持混合云的功能。Murano和Docker的集成,主要体现在它提供了一个K8S的应用,用户可以通过这个K8S应用来管理Docker集群。但Murano和Docker的焦点不一样,Magnum主要提供容器服务,Murano主要提供应用目录服务。最后的Kolla,主要是简化OpenStack的安装部署和升级的。---From CSDN

收起
互联网服务 · 2018-01-19
asdf-asdfasdf-asdf  研究学者 , cloudstone
vm是为了对目前开发能力进行的业务补充docker是以后几年开发模式的主要方式serverless在未来会变成主要开发模式openstack不过是一个业务聚合 docker是新的虚拟技术业务需求设计可在任何虚拟技术上进行.最终考察的是市场技术能力和成本以及企业自身的技术能力和运维技...显示全部

vm是为了对目前开发能力进行的业务补充
docker是以后几年开发模式的主要方式
serverless在未来会变成主要开发模式
openstack不过是一个业务聚合 docker是新的虚拟技术
业务需求设计可在任何虚拟技术上进行.最终考察的是市场技术能力和成本以及企业自身的技术能力和运维技术能力.
不存在业务只能在什么平台上运行的问题

收起
软件开发 · 2018-01-23
浏览6088

提问者

sonyduck
系统工程师昆明铁路局
擅长领域: PowerVCiaas需求分析

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-01-19
  • 关注会员:5 人
  • 问题浏览:10610
  • 最近回答:2018-01-23
  • X社区推广