kubernetes--入门(1)
讲师:汪洋 适用于学习的人群:软件工程师 测试工程师 运维工程师 软件架构师 项目经理 (底层框架)
一、kubernets 介绍说明
K8S :企业的技术平台的标准
1、发展经历
云计算的三种交互标准:
Iaas:Infrastructure as a Service,基础设施级服务,代表厂商 国际AWS(数据量和用户量都是全球第一的),国内阿里云
saas:Software as a Service,软件设施级服务,代表作品:office365
paas:platform as a Service,平台级服务, 代表厂商:新浪云,新浪的SAE 号称是免运维平台,docker是paas平台运行的下一代标准,docker主要的作用就是构建环境封装的运行体,但是与此同时,也会带来更大的问题:传统化的集群中通过TCP访问到主机+端口号即可,这样就组成了连通性,保证了服务的正常提供,但是这些服务被容器化之后的映射关系就会比较混乱,容器的集群化方案是什么呢?有了这个需求之后,该有怎样的产品呢,于是又引出资源管理器。
资源管理器又经历了哪些过程?
(1)Apache MESOS :采用的是apache的开源协议,开源的分布式的资源管理框架 最大的使用者Twitter 也于2019.5.2 宣布使用kubernetes,比较古老的资源管理器,开源的分布式的内核,2019年5月2日发布的了Kubernetes,不再用MESOS,于是MESOS就提供了一种框架可以支持K8s运行,但是目前还没有公司使用该框架。主要的原因还是K8S与容器相融的很贴合,就没有再加一层MESOS的必要了……
(2)Docker SWARM :对于docker专门做的,对于其他的容器就会不支持,SWARM是由docker的母公司发布的docker的资源管理器,主要实现的功能也是docker的集群化方案。目前的docker SWARM已经变成了docker内核的功能,很轻量,但是为什么现在不用这个呢?主要的原因还是SWARM对于现在企业级的k8s的功能还是太少,比如k8s的滚动更新、回滚等功能在SWARM中实现是相当困难的,所以不太适用。SWARM在大型环境下支持的节点很多,但是在企业环境下还要求支持的功能多,不仅仅要求云节点多。
出现的事件:2019年07月 阿里云宣布 Docker swarm 被剔除。
(3)kubernetes :Google公司的,谷歌在10年前就使用这样的容器化基础架构,技术已经是相当成熟。其中的一个组件:borg系统,谷歌内部的管理容器的框架,随着docker的盛行,于是谷歌的工程师用Go语言对Borg系统进行翻写,重新定义为Kuberbetes。开源给容器基金会,被大家广泛使用。
特点:
- 轻量级:不同于现在的资源管理器,有的采用java语言,UB语言等这些开发语言,这些语言都有一些特性,是一种解释性语言,效率比较低下,作为管理器来说,业务是比较繁忙的,并且这些语言会消耗大量的内存,所以运行起来并不轻量,于是就引入了Go语言——现代的C语言,首先它是一个解释型语言,效率跟C语言看起,但是比C语言好的一点就是:在语言级别支持进程管理。不需要人为控制。所以由Go语言开发来的kubernetes对于系统的资源占用是非常小的,这里的轻量级并不是说支持的功能少,而是消耗的资源少。
- 开源:免费
- 弹性伸缩:灵活增加或者剥离容器的管理
- 负载均衡:不用人工搭建资源调度器来实现,节省了人工成本,本机搭建,而且最新的版本支持的框架是IPVS。