当我们的后端服务器不够用的时候,我们可以通过容器技术,可以快速的把这些服务器全部虚拟出来, 当然这个虚拟跟虚拟机是不一样的,比虚拟机的方式快多了,早期阿里的淘宝平台如果整个坏掉了,重新搭建部署起来需要一个月的时间,现在,一个小时以内可以把整个淘宝平台包括天猫和聚划算等重新搭建部署起来,这是一个非常复杂的系统工程,里面涉及的工程太多了,但是基于阿里云,通过容易容器,可以在一个小时以内把这套平台全部重新搭建运行起来。
谈到容器就不得不提Docker和Kubernetes,这几天,相信大家都看到了Kubernetes社区发生了一件大事,1.20版本宣布放弃Docker,容器圈内一下子炸锅了????????????。
我们先来看一下Docker和Kubernetes分别是什么?
1、Docker,它是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux或者Windows机器上,也可实现虚拟化。但是Docker仅仅是容器的一种,容器还有其它类型的容器,比如rkt、runV,不同类型的容器提供的api并不完全一样,所以Kubernetes要创建这些容器,就需要调用不同的接口。
2、Kubernetes,发音[kubə’netis],重音在第三个音节,读音:库伯耐踢死,硅谷的人起名喜欢把一个单词首字母+跳过的字母数来进行缩写,比如亚马逊的Algorithms被缩写成A9,而kubernetes缩写为k8s,意思就是k后面跳过8个字母后到s,就变成了k8s;它是谷歌的第三个容器集群管理系统(前两个:Borg、Omega,这两个是谷歌内部系统,k8s是开源的),Kubernetes在Docker技术之上,为容器化的应用提供了资源调度、自动化部署运行、服务发现和自动扩容缩容等丰富多样的功能。在项目公开后不久,微软、IBM、VMware、Docker、CoreOS以及SaltStack等多家公司便纷纷加入了Kubernetes社区,为该项目发展作出贡献。
我们再来看看Kubernetes的强大应用
1、k8s是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从应用集群创建,应用部署,应用提供服务,应用扩容缩容,应用更新,都非常的方便,而且可以做到故障自愈,例如一个服务器挂了,可以自动将这个服务器上的服务调度到另外一个主机上进行运行,无需进行人工干涉。
2、k8s可以更快的更新新版本,打包应用,更新的时候可以做到不用中断服务,服务器故障不用停机,从开发环境到测试环境到生产环境的迁移极其方便,一个配置文件搞定,一次生成image,到处运行。
Kubernetes如此之重要,对于使用容器搭建后台应用和服务的企业的重要性不言而喻,所以在Kubernetes宣布1.20版本放弃Docker,确实引起Docker使用者的恐慌,但是Mirantis已经同意在Kubernetes之外维护docker shim的代码了,虽然对使用Docker构建容器镜像的用户会有一些影响,但是这样还是有解决方案的,通过Docker内置的CRI或者我们使用CRI-O都是可以继续使用docker shim了,不同的是之前是在Kubernetes内置使用,现在需要在外部使用。