Kubernetes第一回(架构概述)

,在码头工人还没有出现前,我们去安装部署应用程序时,比如nginx、php等web架构站点。我们要去手动操作部署,非常繁琐耗时,后来有了ansible等运维工具。这种工具实际上是一个应用编排工具,能够实现安装,配置,启动。甚至可以按照定义好的剧本完成对多种有着依赖关系的应用程序的快速部署。代替了繁琐易出错的手动操作。而这种工具操作的对象是直接部署在操作系统中的应用程序.docker出现以后,各种应用程序都被封装在容器中运行(容器化)。由于操作对象从实际的应用程序对象变成了容器内的应用,他们本身提供的访问控制和管理接口是不同的,所以ansible等运维工具无法完成容器运行的编排工作后。来,出现了专门用于容器编排的工具


<强>

<李>

docker 组成:它是码头工人自主研发,它只能面向单个的docker 主机来执行编排操作,后来码头工人为了让docker 组合能支持多机的编排工作,推出了docker 群和docker 机两个组件

<李>

便:便是Apache下的开源分布式资源管理框架,它能够把一个IDC当中所有硬件所提供的计算资源统一调度和分配,但是它面向的上层接口不是容器运行的接口,而只是资源分配工具。它不能直接托管运行容器。所以在便基础之上,它必须要依靠一个面向容器编排的框架(马拉松)

<李>

kubernetes:它是由谷歌公司在2014年发布的一款开源的容器编排引擎,用来管理云平台中多个主机上的容器化的应用.kubernetes的目标是让部署容器化的应用变的简单高效。到现在为止,kubernetes已经占据了容器编排市场的80% .


<强>

DevOps是(开发和操作的组合词)是一组过程,方法、文化与系统的统称,depvops重视的是将持续集成,持续交付再到持续部署的一整套流程的解决方案

<李>

CI (Continued  integrate 持续集成)

<李>

CD (Continued  Delivery 持续交付,)

<李>

CD (Continued  Deployment 持续部署 )


2.1、devops和docker的关系

docker容器的出现和容器编排工具的出现使得devops这一套流程(持续集成、持续交付、持续部署)更容易实现了,在原来的场景中,我们需要针对目标的环境构建不同环境的应用,部署方式也不尽相同。而有了docker之后,就不需要关注这些,因为docker可以做到,一次构建,到处运行。我们可以只构建一次(构建为镜像),只要目标主机上有docker(不需要关注目标主机的环境),我们就可以将应用跑起来。

虽然docker可以很好的将devops文化实现,,在众多微服务中,我们每天可能需要去处理各种服务的崩溃,而服务间的依赖调用关系也及其复杂,这对我们解决问题带来了很大的复杂度。要很好的解决这个问题。我们就需要用到容器编排工具。


最早在2014年对外发布,kubernetes是由google的几位工程师用Go语言根据google内部强大的容器编排工具Borg改写而来。而后在容器技术广为应用之后,kubernetes在短短几年之内,发展迅速,它深受人们的喜爱。kubernetes最早的版本1.0在2015年发布,到现在为止发布的版本已经到了1.12版。在2017年容器技术发展历史上具有里程碑意义的一年,因为在这一年中,aws、微软云、阿里云等等著名的云计算公司都开始宣布原生支持kubernetes 。还有的平台可以做到把自己的k8s对外提供服务,让用户可以直接在上面部署应用程序,提供容器级服务的环境。这些大型云厂商的支持, 使得k8s在业内已经受到了广泛的认可和支持。而且在2017年10月,docker宣布在他们的企业版发行版当中,原生同时支持swarm和kubernetes两种工具。


  • 自动装箱:基于资源依赖及其他约束能够自动完成容器的部署而且不影响其可用性

  • 自我修复:一旦某一个容器崩溃,由于容器轻量级的特点,kubernetes能够在1秒中左右迅速启动新的容器。 

  • 自动水平扩展:只要物理平台的资源支撑是足够得到,kubernetes就可以无限制的增加容器。

  • 服务发现和负载均衡:当我们需要在k8s上运行很多应用程序的时候,一个服务可以通过自动发现的形式找到它所依赖的服务,而且每一种服务如果起了多个容器,他能实现自动负载均衡。

    Kubernetes第一回(架构概述)