做为容器云平台级的项目,从题主内容中大方向已经确定了容器引擎和编排调度框架的选择,这也是众多厂商和客户的选择 Kubernetes 和 Docker。但是平台要真正用起来还将面临一系列工具链的选择,其中包含 CICD、安全质量扫描、灰度上线、监控日志和通知等等。另外还会有高可用、多活等需求的考量
收起抛开其他因素,单从技术角度上说,在规划容器云项目的时候面对多种技术路线选择,即便同样的技术也可能有多种实现方式。首先可能是容器引擎技术以及容器编排调度技术、微服务框架、DevOps实现方法等。这里主要谈下容器引擎和容器编排调度框架的选择,同时要明白项目往往会受到资金、利益相关方等的影响。
1. 容器引擎
容器引擎技术主要有Docker公司的docker引擎和CentOs的rkt引擎,rkt理论上在安全性和兼容性方面更好,但缺乏生产实践,目前用户大部分使用Docker。Docker社区也更活跃,这可能跟Docker发布比较早和参与的人更多有关。目前大部分容器厂商都首选Docker支持,rkt的成熟度仍显不足,因此容器引擎我们选择Docker引擎。
2. 容器编排调度框架
容器编排调度框架主要有Mesos、Docker Swarm、Kubernetes、Openshift、Pivotal Kubernetes(PKS)等。
Docker Swarm简单易用。原生支持Docker,安装Docker后开启Swarm模式即可使用。比较适合小型的集群管理。
Kubernetes除支持主流Docker容器(需单独安装Docker组件)以外也支持CoreOS rkt等容器技术,目前社区最活跃,受厂商支持也最多,基本上所有的容器云厂商都已转向支持Kubernetes。
Mesos上无需安装docker程序也可以运行docker容器,mesos可以自己解析docker镜像来启动容器。Mesos应该来说更成熟,Kubernetes已经测试了数千个节点,而Mesos已经测试了成千上万的节点。Mesos社区不再活跃,对超大集群的支持Mesos更合适。
Openshift是Redhat基于Docker和Kubernetes之上做了封装的开源容器应用平台。RedHat增加了很多新的特性以支持应用的快速开发、部署、扩展等生命周期管理能力。Openshift的实施一般是由RedHat合作伙伴执行。合作伙伴的能力决定着项目的质量。
Pivotal在其PCF的基础上对Kubernetes进行了支持。微服务框架SpringCloud及SpringBootdd等框架也是来自于Pivotal,另外也支持Serverless 函数及服务等,相对来说采用微服务比较便利。
考虑到技术的快速变化,为了后期升级维护的需要,适合选择社区活跃、支持度高的容器编排调度框架,综合考虑,Kubernetes或者Openshift是目前比较好的选择。
收起