二、K8s是什么?

1.为什么会诞生K8s?

  服务部署的演变:

K8s系列---【二、K8s是什么?】_docker

  第一代服务部署: 物理机部署模式 (资源利用率不高,环境一致性问题)

  第二代服务部署: 虚拟机部署模式 (资源利用率不高,虚拟占用资源,环境一致性问题)

    问题: 几十万个虚拟机,如何维护管理这些机器呢??

    答案: 需要cloud os 云操作系统,对虚拟机资源进行调度,管理;

  第三代服务部署: 云端模式(容器化部署)

    问题: 容器化方式部署服务,当容器变成几百万,上亿的时候的,如何管理??

    答案: 需要cloud os (kubernetes) 容器云操作系统,对容器进行管理; 

  小结: kubernetes到底是什么?

  答案: kubernetes就是一个容器云的操作系统,用来对容器进行管理(弹性扩容,负载均衡,服务发现……)。

K8s系列---【二、K8s是什么?】_负载均衡_02

 

 2.K8s是什么?

  Kubernetes就是为了容器调度(管理),对服务部署提供了一套自动化的,完美的解决方案。中文社区官网:​​https://www.kubernetes.org.cn/k8s​​​,官网:​​https://kubernetes.io/​​。

K8s系列---【二、K8s是什么?】_docker_03

 

 3.Kubernetes历史

  Kubernetes是google公司,使用go语言开发的一套容器编排(管理:CURD)技术

  Google庞大体系:

  百万台服务器(数十亿的服务/week 需要进行部署,维护,管理) --- borg(伯格)系统 (服务编排,管理)-- 战略级武器

  Google: 参考borg系统的架构,重新开发一套容器编排技术。

4.容器编排技术

4.1、Docker-compose

Docker-compose(单机版),也是一个容器管理技术,可以实现容器批量的创建,更新;但是不能实现容器精细化控制,也不能实现弹性扩容,负载均衡……; 且不能跨节点进行操作。

4.2、Docker-swarm

 K8s系列---【二、K8s是什么?】_服务部署_04

  Docker-swarm仅仅是基于容器层面实现服务调度发布,通过http协议进行服务部署调度,不能实现更加精细化服务控制(没有标签,pod)。

 4.3、mesos

Mesos针对不同的运行框架采用相对独立的调度系统,其框架提供了Docker容器的原生支持。 Mesos并不负责调度而是负责委派授权,毕竟很多框架都已经实现了复杂的调度。

 4.4Kubernetes

K8s系列---【二、K8s是什么?】_docker_05

  使用Kubernetes可以:  

  - 自动化容器的部署和复制

  - 随时扩展或收缩容器规模

  - 将容器组织成组,并且提供容器间的负载均衡

  - 很容易地升级应用程序容器的新版本

  - 提供容器弹性,如果容器失效就替换它

5.什么是云原生?

  云原生技术:

    1、以kubernetes为核心架构体系,就叫做云原生技术。

    2、软件架构设计思想,遵循kubernetes云原生架构的设计实现,这种架构体系叫做云原生架构。

  落地方式:

    1、架构维度: 软件架构开发思想

    2、应用角度: 让应用服务(软件)(开发应用,MySQL,es,redis……)都必须运行在容器中,然后使用容器编排技术kubernetes进行管理,这样的架构就叫做云原生。

  云原生特点:

    1、容器化: 所有的服务都必须跑在容器中。

    2、微服务: 按照function拆分的服务,微服务架构服务更加适合部署的在容器中,实现云原生架构。

    3、DevOps : 开发+运营(运维)结合体,DevOps是一种敏捷的开发思想,让开发以一种更好的组织形式实现流水线的生产模式,实现高效的开发交付。

    4、CI/CD : 可持续集成,可持续交付。

  CNCF(云原生组织): 对云原生架构做新了定义:  ServiceMesh 服务网格架构定义为云原生架构。

6.云知识扩展

  云计算三层架构:

    1、基础设施即服务: IAAS

    2、平台及服务: PAAS

    3、软件即服务: SAAS

K8s系列---【二、K8s是什么?】_服务部署_06