k8s的历史7
到底什么是k8s,k8s有什么功能,我们都不清楚?
k8s是一个docker集群的管理工具,
k8s的核心功能
自我修复:
一旦这个容器死了,没关系,k8s会自动在其他的节点上给它跑起来,或者只要这个容器立马一死,k8s马上把它拉起来,如果这个节点都死了,换个节点继续跑,始终保证你的容器一直在运行,你只要等着它,一会儿就好了,这就叫自我修复。
横向缩放:
在我们生产上,有web服务器,有负载均衡,如果说这是负载均衡的话,弹性伸缩弹的是web服务器,所有的web服务器连上的是同一个数据库,弹性伸缩会监控容器的一个状态,比如监控它的cpu的压力,当cpu压力大的时候,我自动由一个容器加到两个容器,压力在大,我继续加,你可以设定一个加到最大值,加出来的容器会自动加到负载均衡,每个容器里面的配置文件都一样,自动连到后面的同一个数据库,这是压力大的时候这样;压力小的时候,容器减少,缩到最后只有一个,这样的话,如果阿里云是按量付费的,用的越多越贵,压力大的时候自动扩,压力小的时候自动腾出来,这样就省钱了,这就是横向缩放的特性,k8s原生就支持。如下图所示
自动部署和回滚:
比如我们启动了5个容器来提供我们的web服务,升级的时候并不是5个容器一起全关,一起全升级。而是做到一个一个的升级,5个容器一个升级完之后接着一个升级。滚动升级有什么好处?当你的业务,客户量特别大的时候,这时候就有影响了,比如QQ,过一段时间就提出新功能,升级新版本,升级的时候它能把全国的QQ替换掉,直接上新版本?一旦上了新版本有问题,这个有问题,那个有问题,所有的用户就感受到不好用,怎么减少范围?用着用着问你是否需要升级,体验新功能,发现有bug的时候就会给你回滚,回退;发现没问题,升了一部分,用户觉得体验好,把其他一部分也升级,甚至QQ用到一定时候,你不升级都不能登录了,这个时候就是强制升级了,一开始升级一点,在升级一点,这样可以减少范围,就算有bug,也就是部分用户察觉到了,其他用户没感觉,这就叫做自动部署和回滚。有问题就直接回退到上一个版本。上一个版本是正常的。咱们的k8s可以实现滚动升级和实现一键回滚,直接就全部回到上一个版本。
服务的发现和负载均衡:
正常情况下,负载均衡需要配置一个nginx,需要配置一个upstream,一开始只有一个节点,upstream只有一个,后面再加两个节点,新增加的容器负载均衡里面没有upstream,正常情况下,需要手动改一下配置文件upstream,reload一下才好使,k8s这一块它的负载均衡不需要改,容器只要跑起来,自己自动加入进去,不需要改任何东西,所以就管这个服务叫做自动发现,在它的内部还做了一个负载均衡,你启动多个容器,自动帮你做负载均衡,自动做服务的自动发现。
这是核心功能,官方的一些功能我们没有介绍,我们主要的是用好k8s的这几个核心功能就可以了,接下来说一下k8s的历史。
k8s历史
2014年谷歌推出一个容器编排管理工具,有这个消息,就开始立项了,什么叫立项,我要开发一个什么东西,把这个项目确定下来。然后就开始写代码。就像入学第一天一样。后面就开始对外正式发布,
2015年7月份,k8s正式发布了1.0版本,发布之后,就捐给了一个基金会CNCF,2015年k8s就加入了CNCF基金会
2016年,1.1,1.2,1.3,1.4,之后是每年四个版本更新,
2017年,
2018年,k8s从CNCF基金会毕业,一旦它毕业,代表这个东西很成熟了,可以应用到企业里面的生产和使用,已经达到了企业的要求,开源项目已经成熟,并且足够灵活,可在任何行业、各种规模的公司中大规模地管理容器。CNCF叫云原生计算基金会,cloud native coupute foundation,这个基金会专注于云计算。这个CNCF基金会有很多的会员,很多大公司都是CNCF基金会的会员,2015年k8s就加入了CNCF基金会,CNCF基金会推动了k8s的发展,2018年就毕业了,发展的挺快。目前这个技术是全球里面仅次于linux内核的一个项目了,特别火。
2019年,1.13,1.14,1.15版本,每年的版本更新迭代特别快,一年4个版本.
kubernetes(k8s):希腊语 舵手 它的图标像一个方向盘,用来掌握船只的方向。像舵手一样,领航容器编排领域,作为容器编排领域的领航者,为什么一推出来它就特别火,因为在谷歌公司在10多年前就大量使用容器了,谷歌一直在说我们有16年的容器使用经验,目前来说的话,谷歌公司是互联网技术最牛的一家公司,在大规模使用容器的时候,能够是每一台容器都是手动管理,它使用了10多年的容器,你觉得是每一台容器都是手动去管?早期的时候,内部就有一个容器的管理平台,borg,容器管理平台,用了10多年,所以说它的管理经验特别丰富,这个borg容器管理平台不是使用go语言写的,可能是使用python或者其他语言写的,后来谷歌推出了go语言,叫做golang,它用golang把这个brog容器管理平台重构了一下,它用golang吸收了brog容器管理平台的一些经验,重构了一个borg,就是在borg的基础上,重新用golang语言写了一份,重构推出来之后就不能再叫borg了,起了一个新名字,叫做kubernetes,这个东西是很多年经验的积累,才推出来这个一个东西,一推出全世界的人都在追捧,在早期的时候,2016年的时候,容器编排领域还有3家公司在一起竞争,2016年,kubernetes干掉了两个对手,docker 公司的新儿子,docker swarm,大家都用k8s,不用docker swarm;又干掉了一个mesos的一个 ,最后,docker官方都说了docker将更好的支持k8s,自己的docker swarm准备放弃了,k8s占领了90%以上的市场,要学容器编排,不要浪费时间在docker swarm 上面和mesos上面,直接研究k8s就好了。
标签:CNCF,容器,历史,升级,自动,docker,k8s From: https://www.cnblogs.com/ypyyds/p/16825214.html