Kubernetes就是一个编排容器的工具,一个可以管理应用全生命周期的工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈。
K8S的前景想必大家都知道,其在人工智能、大数据、5G、区块链、智能家居、航空航天、金融、政务、无人驾驶、制造业等领域都占据着重要的地位,已经有数万用户和企业选择使用K8s。
可以说,学习K8S是求职涨薪进入名企的一条捷径,不仅如此,中小企业也都在引进K8S人才。
今天来给大家分享一下k8s的笔记吧!
核心架构
K8S 集群的核心组件,包括数据库 etcd,调度器 scheduler,集群入口API Server,控制器 Controller,服务代理 kube-proxy 以及直接管理具体业务容器的 kubelet。这些组件逻辑上可以被分为三个部分:核心组件 etc 数据库,对 etcd进行直接操作的入口组件 API Server,以及其他组件。
节点组件
k8s集群由Master节点和Node(Worker)节点组成。
Master节点
指的是集群控制节点,管理和控制整个集群,基本上k8s的所有控制命令都发给它,它负责具体的执行过程。在Master上主要运行着:
Kubernetes Controller Manager(kube-controller-manager):k8s中所有资源对象的自动化控制中心,维护管理集群的状态,比如故障检测,自动扩展,滚动更新等。
Kubernetes Scheduler(kube-scheduler):负责资源调度,按照预定的调度策略将Pod调度到相应的机器上。
etcd:保存整个集群的状态。
Node节点
除了master以外的节点被称为Node或者Worker节点,可以在master中使用命令 kubectl get nodes查看集群中的node节点。每个Node都会被Master分配一些工作负载(Docker容器),当某个Node宕机时,该节点上的工作负载就会被Master自动转移到其它节点上。在Node上主要运行着:
kubelet:负责Pod对应的容器的创建、启停等任务,同时与Master密切协作,实现集群管理的基本功能
kube-proxy:实现service的通信与负载均衡
docker(Docker Engine):Docker引擎,负责本机的容器创建和管理
核心概念
Pod 是 Kubernetes 的一个最小调度以及资源单元。用户可以通过 Kubernetes 的 Pod API 生产一个 Pod,让 Kubernetes 对这个 Pod 进行调度,也就是把它放在某一个 Kubernetes 管理的节点上运行起来。一个 Pod 简单来说是对一组容器的抽象,它里面会包含一个或多个容器。
Volume 就是卷的概念,它是用来管理 Kubernetes 存储的,是用来声明在 Pod 中的容器可以访问文件目录的,一个卷可以被挂载在 Pod 中一个或者多个容器的指定路径下面。
而 Volume 本身是一个抽象的概念,一个 Volume 可以去支持多种的后端的存储。
Deployment 是在 Pod 这个抽象上更为上层的一个抽象,它可以定义一组 Pod 的副本数目、以及这个 Pod 的版本。一般大家用 Deployment 这个抽象来做应用的真正的管理,而 Pod 是组成 Deployment 最小的单元。
Kubernetes 是通过 Controller,也就是我们刚才提到的控制器去维护 Deployment 中 Pod 的数目,它也会去帮助 Deployment 自动恢复失败的 Pod。
完整版k8s学习资料
免费分享
有需要资料可以扫码领取: