有了docker和k8s我们还需要云计算openstack吗?
openstack在Iaas层规范管理还是有突出贡献的,paas层和saas层用k8s来实现比较合适。不知道你们觉得呢?
OpenStack与Kubernetes是处于二个不同层面的事情。二者所解决的问题虽然在宏观上有一点相似性,但又有很大的不同。二者虽然存在一定的交集,但更多的是补充的关系。
所以可以明确的回答即使有了docker/Kubernetes(容器技术),OpenStack(虚拟化技术)也是需要的
收起主要还是看应用,应用的现状(单体化)和容器化改造难度以及成本都会一定意义上维持乃至扩大虚拟机的生态,所以个人觉得长期并存是一个可以预见的状况
而且k8s仍然需要在IaaS 层面提供支持,从k8s的设计理念来说它是不关心iaaS层面的,例如每一个cloud 提供商都需要提供一套自己的cloud 接口来部署虚拟机/裸机或者load balancer 等,这些都是需要云提供商提供的,openstack作为一种云提供商在这些领域的生态建设也做的很好;同时openshift 4 也在计划原生支持openstack,会提供一套openstack的安装接口,可以一键在openstack或者其他的云提供商上安装openshift集群。
所以,总体来说,openstack 在现有应用的继续支持和与k8s生态集成以及边缘计算等领域发挥持续的作用。
收起docker/k8s与openstack的设计理念是不同的,因此解决的问题也不一样。
openstack设计出发点是资源,以资源为中心,聚焦如何池化资源,如何高效分配与回收资源。
docker/k8s设计出发点是应用,以应用为中心,聚焦应用的build-ship-run全生命周期。
如果你们公司是自建IDC有几百台服务,自己使用,不对外提供云服务,那么可以考虑只使用K8S来管理。
如果你们公司是一个云厂商或SaaS(如salsforce)厂商对外租售资源或服务,那么需要考虑资源虚拟化,因为不是所有的应用都能容器化并被k8s管理,另外虚拟化网络与存储在这种情况下也是必须的,k8s并不能满足。
这两者并不冲突,按照云计算层级来划分,openstack更多属于iaas层面,而docker和k8s更多服务于paas或者saas;
1)openstack:
更多实现对基础架构资源的调度和管理,比如:计算/存储/网络虚拟化的管理,以及相关的安全管理,现在过了狂热的投入期,已经日趋成熟,能够提供openstack成熟方案的公司也不是很多,例如华为,华三,easystack,中移研究院,zstack等,大多是一些大型的公司,技术和服务有保障
2)docker和k8s
更多是实现业务的提速,例如devops,aiops等,某些场景下可以取代openstack的情况,但是也有局限性——对于硬件的管理并不是容器的专长,需要开发。现在容器正火,企业投入很大,也能直接带来效益,不论大小公司均可以推出容器平台产品,但是大公司的产品一般很难提供定制化,但是产品品质和服务有保障;小公司可以深度定制,但是产品品质和服务保障能力堪忧。
不管是openstack还是容器,首先需要看企业自身的需求,是资源管理,还是业务改造,需要有专业的团队来做支撑——实施和运维。
面向不同的层面吧
OpenStack主要面向资源分配,虚拟机创出来了就基本没有责任了,至于服务高可用,自动伸缩,监控这类的功能完全由应用方来处理,平台不提供支持,适合传统的部署模式,对应用而言和物理机时代没有区别;
K8S面向的是服务,强调服务能力,具有弹性与高可用保障,而不是简单地提供IT资源。对应的,应用也要使用云原生的理念来进行改造拆分,以更好地利用K8S提供的平台能力
是不是需要根据业务需求,如果业务都可以上容器,确实没有必要再搞IaaS平台,如果部分老业务不能上容器,又在安全和环境要求方面需要IaaS平台,那还是需要IaaS平台的。
收起openstack 侧重于 IaaS 层建设,目标是实现各种硬件资源(计算、存储、网络)的统一管理和资源交付,
K8S 侧重于 PaaS 层建设,为应用提供各种中间件等服务,
二者不矛盾冲突。