Kubernetes 面向应用层,变革的是业务架构,而 OpenStack 面向资源层,改变的是资源供给模式。使用容器且集群规模不大,直接用 Kubenetes 就可以;集群规模大,不管应用是否只是跑在容器中,都是 OpenStack + Kubernetes 更好。
OpenStack + Kubernetes 是各取所长,并不只是因为惯性,而是对于多租户需求来说,Container(容器)的隔离性还需要加强,需要加一层 VM(虚拟机) 来弥补,而 OpenStack 是很好的方案。不过,VM + Container 的模式,必然有性能的损耗,所以 OpenStack 基金会也推出一个项目叫 Kata Containers,希望减少虚拟化的开销,兼顾容器的性能和隔离性。
永恒的只有变化,未来的业务都会运行在云上,容器是走向 DevOps、Cloud Native(云原生)的标准工具,已经开始走向平凡,而 Kubernetes 的编排能力,让容器能够落地到业务应用中,所以我们看到 Docker、Mesos、OpenStack 以及很多公有云、私有云服务商,都在支持 Kubernetes,大家都加入了 CNCF(云原生计算基金会)。
总结起来,OpenStack 是兼容传统的架构,而 Kubernetes 是面向未来的架构。
最后,计算开源云这几年发展很快,从这个问题提出到现在,社区又有了很多变化。所以要修正一个观点:Kubernetes 支持的容器运行时不仅仅是 Docker,也包括 Rkt,当然 Docker 更加流行。
简单的说,kubernetes是管理container的工具,openstack是管理VM的工具。
container可以运行在物理机上,也可以运行在VM上。所以kubernetes不是需要openstack的支持。但对于云计算来说,很多IasS都通过openstack来管理虚拟机。然后用户可以在这些虚拟机上运行docker,可以通过kubernetes进行管理。
不过kubernetes虽然是开源的,但它毕竟是为GCE服务的,Google其实并没有多少动力去支持其他平台的。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sadflower/article/details/89218488
openstack----把物理机联合起来做虚拟化。在OpenStack上可以创建新的虚拟机。这样就可以增加物理机的使用率,还可以从某种角度上降低风险。Iaas
docker--在一台机器上,无论是物理机还是虚拟机,部署docker。docker上可以部署多个应用,这些应用已经完成了编译。可以在docker的环境中运行。build once,run anywhere。所以这是一种典型的Saas。docker-码头工人。
K8s(Kubernetes)叫K8s是因为中间有八个字母,还贼难背。因为docker很容易部署,docker上的应用也很多,所以大家都可以很轻松的布置多个docker应用。但应用多了之后就很难管理了。于是就有了K8s。顺便说一下,Kubernetes的意思是领航员
K8s就像是linux一样,只是一个开源的管理系统。于是就像Ubuntu一样,有发行版了--sextant。(六分仪)
感觉这堆人也是会玩
————————————————
版权声明:本文为CSDN博主「温半夏」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sadflower/article/details/89218488
一、OpenStack概述
Openstack使用python语言开发,是虚拟资源管理工具,他可以协助你搜集各种资源,并加以利用以及管理,实现物理资源的高效使用和安全。虚拟物理机这个动作,openstack无法完成,需要一个中间层例如KVM、Xen、Hyper-V等,来基于硬件做资源的虚拟化,然后此时openstack通过各种API接口来接管这些资源。
OpenStack 主要针对 Iaas 平台,以资源为中心,可以为上层的 PaaS 平台提供存储、网络、计算等资源。
二、与Docker和K8S的关系
1.OpenStack:公认的云计算IaaS平台,其管理的核心目标对象是机器(虚拟机或物理机),当然也可以管理存储和网络,但那些也大都是围绕着机器所提供的配套资源。近年来容器技术火了之后,OpenStack也开始通过各种方式增加对容器的支持,但目前OpenStack还不被视为管理容器的主流平台。
2.Docker:这里我假定你指的是Docker engine(也叫做Docker daemon,或最新的名字:Moby),它是一种容器运行时(container runtime)的实现,而且是最主流的实现,几乎就是容器业界的事实标准。Docker是用来创建和管理容器的,它和容器的关系就好比Hypervisor(比如:KVM)和虚拟机之间的关系。当然,Docker公司对Docker engine本身的定位和期望不仅仅在于在单机上管理容器,所以近年来一直在向Docker engine中加入各种各样的高级功能,比如:组建多节点的Docker集群、容器编排、服务发现,等等。
3.Kubernetes(K8s):搭建容器集群和进行容器编排的主流开源项目(亲爹是Google),适合搭建PaaS平台。容器是Kubernetes管理的核心目标对象,它和容器的关系就好比OpenStack和虚拟机之间的关系,而它和Docker的关系就好比OpenStack和Hypervisor之间的关系。一般来说,Kubernetes是和Docker配合使用的,Kubernetes调用每个节点上的Docker去创建和管理容器,所以,你可以认为Kubernetes是大脑,而Docker是四肢。