docker Swarm与k8s改如何选择?
最近看一段时间容器集群,越看越迷糊了。大家来看看如何选择??
k8s 已经是事实标准了。
但你如果要做选择 也需要考虑一下实际情况 比如你就一个小项目 预期也不会很复杂 那即使是 compose 都能满足 那你也没必要非上 k8s
目前生产环境Swarm 运行了400多个容器,谈谈一点感受:
1、业务量访问高峰期的时候,内部service通信的时候就会出现超时的问题,总的来说,swarm的网路让人从惊喜到担忧
2、docker service在系统异常的情况下,不能被正常kill容器,docker service scale | rm 失控的状态
3、多个service打一样的别名,在负载的时候,也会出现网路不通的问题。
基于以上问题,真的是有点又爱又恨,正在尝试k8s……
没有最适合的环境,只有最适合自己环境与人员的环境。
就目前来说.. k8s 的大局与支持更好,从各大云厂商的产品就可以看出来..
如果是学习的话,从 k8s 开始无疑是最好的..
不过大概未来...大概都不会关心... 底层技术了....只关心应用了....
因为.....
现在哪里还有人选择swarm啊,都选择k8s了。首先从底层支持的容器类型,k8s多了很多选择。其次从支持的网路,k8s不光选择多,可扩展性也抢了很多。再看ingress controller,swarm没法比。最后看看社区支持,那就啥都不说了。
这俩个都可以选择,前提是看你公司的环境!!!
公司的伺服器体量大,建议选择k8s(这也是趋势)。
公司的伺服器体量小,而你们有需要快速做到容器化部署,那你就选择 swarm.。
k8s的学习成本比较高,但是管理精度高,功能丰富,k8s+istio会成为微服务架构的主流
但是部署相对困难,建议尝试二进位部署,可以更好的理解里面组件的性能,实际上还有一个kubesphere,这是对k8s的一个集成,有时间尝试一下
swarm就是docker的原生态管理软体,学习成本低,而且容器启动也快,但是功能比较少。如果你们公司伺服器体量不大可以一直用swarm
无论跑得多慢,你都会最终跑到k8s里面去。
如果是个人项目的话,swarm+traefik是可以的,需要的话在加一个portainer或者swarmit也能玩一会。
但是就容器编排而言,k8s目前来说是终点。
都这个时候了,不用纠结了,大胆的选择k8s,准没有错的。
简单的容器调度可以使用swarm,上手快。k8s功能齐全,上手有难度
最近也在这两者之间做选择,最后选择K8s,前景自然不必多说,我的另一个理由是可玩性比较高,对自己、团队的技术成长也比较好。
期待facebook出一个AutoContainer
google出的东西大都能用但api稀烂。。。
毫无疑问k8s,没大公司参与的开源项目注定没前途。k8s已经是容器编排事实标准了,围绕k8s的开源生态已经形成。
推荐阅读: