容器前时代
说到容器大多数人想到的就是docker,docker的迅速崛起使得使用容器的门槛大大降低了,我第一次接触docker还是14年,那时候作为一名运维部署应用还在大量使用虚拟化,从vmware、hyper-v、kvm、xen 在到后来很火openstack多多少少都有接触和使用,没使用虚拟化之前OS都是装到的笨重物理机上,把OS虚拟化出来就有很多文章可以做了,虚拟化的好处就不说了。
第一阶段问题:
刚接触docker的时候只会把docker装到自己的电脑上来下载一些镜像跑一下这样就不会修改系统原理的环境,当时还不知道容器能给运维的工作带来什么变化,人的进步都是问题带来,先看看一开始我们遇到了什么问题
1、OS还是太笨重,随便哪个OS不是百万级别代码量,所以对OS级别的变更级别上都是分钟级别的
2、因为OS太笨重所以就不想部署太多的OS,这就导致一个OS下经常跑多个应用,一荣俱荣一损俱损
3、开发经常说的一句话:在我电脑上是好的在你们的服务器上就不好了
4、线上变更如临大敌,生怕环境不一致会出异常
解决方案:
docker---->docker-compose---->docker machine
但是吃饱了人们又想折腾了
第二阶段问题:
1、容器都散布在各个地方,每个docker都是独立王国,如何做到集群化管理
2、如何做到跨主机网络访问
3、应用变更时如何做到无感知
3、监控和日志应该怎么做
4、如何做到熔断、回滚、灰度发布
5、如何做容器的负载均衡、内部之间访问
6、如何大规模部署应用
等等。。。。。。
解决方案:
基于kubernetes的openshift
一开始我们并没有选择openshift,而是调研了比较灵活的rancher(当时rancher还是1.x的版本)
当时的rancher有一下几个特点:
1、支持多个底层编排包括Cattle、Swarm、K8S、Mesos
2、可以快速部署多套独立的环境
3、简单的的部署方式
4、高度web化的管理,包括对容器主机的管理
不足之处:
1、当时刚出没多久还太冷门
2、对K8S支持的并不好(rancher2.x版本已经全面拥抱了k8s)
openshift的特点:
1、完全继承k8s所有特性
2、出自红帽之手
3、文档丰富、社区活跃(k8s)
4、有公有云版本在稳定运行
缺点:
1、部署过于复杂
基于对红帽的信仰最后还是选择了openshift