K8S学习001--K8S的诞生,架构与组件介绍
文章目录
前言
-
Kubernetes是什么意思?为什么又称作K8S?
-
Kubernetes的名字来自希腊语,意思是“舵手” 或 “领航员”*。*K8s是将8个字母“ubernete”替换为“8”的缩写。
一:K8S诞生史
- 通过发展史来了解K8S的诞生
1.1:公有云类型说明:IAAS,PAAS,SAAS
- 在云计算的概念中,我们可以把公有云分为三个层面,IAAS(基础设施即服务),PAAS(平台即服务),SAAS(软件即服务).
- IAAS:基础设施即服务。 Infrastructure-as-a-Service(IAAS),国内做的最好的就是阿里云。
- 还有其他的大的IAAS公司包括Amazon, Microsoft, VMWare, Rackspace和Red Hat。
- 但是这些公司又都有自己的专长,比如Amazon和微软给你提供的不只是IAAS,他们还会将其计算能力出租给你来host你的网站。
-
Platform-as-a-Service(PAAS),某些时候也叫做中间件, PAAS公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。
-
Software-as-a-Service(SAAS),列举一些例子:如Google Apps、Dropbox、Salesforce、Cisco WebEx、Concur和GoToMeeting等
1.2:资源管理器的诞生
-
有了以上这些公有云之后,我们需要对其进行资源管理,那么此时就诞生了资源管理器:MESOS–Docker Swarm–Kubernetes
-
MESOS:Mesos是Apache旗下的开源分布式资源管理框架,它被称为是分布式系统的内核,后来在twitter得到广泛使用。
-
Twitter也是mesos的最大客户,但是大概在2019年5月份,Twitter 宣布不再使用MESOS,而改用 Kubernetes,至此,Mesos已经是慢慢的被淘汰了
Docker Swarm,是一个非常轻量的群集管理工具,只有几十MB大小
Swarm 是 Docker官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主机抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker 资源。
但是Swarm 和 Kubernetes 比较类似,因为更加轻,所以具有的功能也较 kubernetes 更少一些。
大概在2019年7月份,阿里云宣布将Docker Swarm 从选择列表中剔除,这也意味着在不就得将来,Docker Swarm 也会像Mesos一样慢慢被淘汰掉
Kubernetes,作为压轴的选手,其成为主流已是必然
-
Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能
1.3:K8S优势
-
轻量级:消耗资源小,开源,弹性伸缩,负载均衡:IPVS
-
可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
-
可扩展: 模块化, 插件化, 可挂载, 可组合
-
自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展
二:K8S架构分析
2.1:K8S前身Borg系统架构介绍
-
K8S非常类似于Borg系统,理解Borg系统架构有助于我们理解K8S架构
-
-
BorgMaster是整个系统的首脑,所有外部请求都要由BorgMaster接收并分配给旗下的Borglet进行处理。并且BorgMaster实现了高可用,一般会有奇数个BorgMaster的节点副本。
-
-
Borglet则是处理所分配下来任务的最小的节点单元。
-
-
scheduler是一个调度器,BorgMaster是通过scheduler将任务发送给Paxos键值对数据库中。而Borglet中在Paxos中进行监听,一旦监听到派发的任务就会从数据库中接收进行处理。
-
外部可以通过web网页、命令、一些配置文件对Borg系统进行访问。
-
2.2:kubernetes的系统架构
- K8s 集群属于主从分布式架构,主要由分布式存储(etcd)、服务节点(Worker Node)和控制节点(Master Node)和一些其他核心组件构成
- 同刚介绍的Brog系统一样,有控制节点和工作节点。
- 控制节点: Master Node:作为控制节点,对集群进行调度管理;Master Node由API Server、Scheduler、Cluster State Store和Controller-Manger Server所组成;
-
Worker Node:作为真正的工作节点,运行业务应用的容器;Worker Node包含kubelet、kube proxy和Container Runtime等;
2.3:组件介绍
-
etcd:键值对数据库 储存K8S集群所有重要信息(持久化),保存了整个集群的状态
-
Master Node控制节点:
apiserver:是master控制节点中最重要的,所有的请求、访问等通信的入口内容都需要交给api server,也提供了认证,授权,访问控制,API注册和发现等机制 - Scheduler:负责介绍任务,选择合适的节点进行分配任务,即:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
- Crontroller Manager:维持副本期望数目,负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
Worker Node工作节点:
-
Kubelet(节点上的pod管家):直接跟容器引擎交互实现容器的生命周期管理,同时也负责Volume(CVI)和网络(CNI)的管理;负责Node节点上pod的创建、修改、监控、删除等全生命周期的管理
其他组件:
-
CoreDNS:可以为集群中的SVC创建一个域名IP的对应关系解析
三:K8S分层架构
3.1:分层介绍
- 核心层:是Kubernetes最核心的层面,对外提供API构建高层的应用,对内提供插件式应用执行环境;
- 应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等);
- 管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态Provision等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy等);
- 接口层:kubectl命令行工具、客户端SDK以及集群联邦;
- 生态系统:在接口层之上的庞大容器集群管理调度的生态系统,可以划分为两个范畴: Kubernetes外部:日志、监控、配置管理、CI、CD、Workflow、FaaS、OTS应用、ChatOps等;
- Kubernetes内部:CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身的配置和管理等;
3.2:K8S和容器生态系统结构
-
最开始已经介绍了第一层IAAS和第四层的资源管理器
-
- 点赞
- 收藏
- 分享
- 文章举报
- kubernetes(k8s)以及涉及组件简单介绍
- PAC(probably approximately correct) 学习架构介绍
- 【ARM学习笔记】六、计算机架构及Flash Memory介绍
- hbase学习教程(一):hbase的概述和hbase架构及基本组件
- iOS学习笔记9 - 组件库介绍1
- C# BackgroundWorker组件学习入门介绍
- Android应用程序组件Content Provider简要介绍和学习计划
- [原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存
- C语言学习笔记---001C语言的介绍,编译过程原理,工具等
- 欢迎来到Java学习天堂-001基础知识介绍
- Android 四大组件学习之activity的四种加载模式介绍
- Citrix XenMobile学习笔记之五:XenMoble架构组件
- Entity Framework 学习总结之三:架构组成介绍
- 从零学习Hadoop--001Hadoop的起源与体系介绍
- Chromium多进程架构简要介绍和学习计划
- Android应用程序组件Content Provider简要介绍和学习计划
- 【微服务架构】SpringCloud组件和概念介绍(一)
- 有关AutoCompleteBox组件的研究[2]_常用特性实例介绍——Silverlight学习笔记[37]
- 2018最新微服务架构实战 从0到1完完全全学习主流微服务技术栈组件及架构(视频+源码+课件)
- Android四大组件之一Service介绍-android学习之旅(十二)