Kubernetes 总体架构

Kubernetes 总体架构

Kubernetes 集群由两类节点组成:Master 和 Node,在 Master 上运行 etcd、API Server、Controller Manager 和 Secduler 四个组件,除 etc 外的三个组件构成了 K8s 的总控中心,负责对集群中所有资源进行管控和调度。在每个 Node 上运行 Kubelet、Proxy 和 Docker Daemon 三个组件,负责对本节点上的 Pod 的生命周期进行管理,以及实现服务代理的功能。

在这里插入图片描述

RC 与 相关 Service 创建的完整流程

创建 RC 与 Pod

  1. 我们通过 kubectl 提交一个创建 RC 的请求(假设 Pod 副本数为 1),该请求通过 API Server 被写入 etcd 中
  2. 此时 Controller Manager 通过 API Server 的监听资源变化的接口监听到这个 RC 事件,分析之后,发现当前集群中还没有它所对应的 Pod 实例,于是根据 RC 里的 Pod 模板定义生成一个 Pod 对象,通过 API Server 写入 etcd 中
  3. 接下来,此事件被 Scheduler 发现,它立即执行一个复杂的调度流程,为这个新 Pod 选定一个落户的 Node,这个过程可称为绑定 (Pod Binding)
  4. 然后又通过 API Server 写入到 etcd 中
  5. 随后,目标 Node 上运行的 Kubelet 进程通过 API Server 监测到这个“新生的” Pod 并且按照它的定义,启动该 Pod 并任劳任怨地负责它的下半生,直到 Pod 的生命走到尽头

创建 Service

  1. 我们通过 Kubectl 提交一个映射到该 Pod 的 Service 的创建请求,Controller Manage 会通过 Label 标签查询到相关联的 Pod 实例
  2. 然后生成 Service 的 Endpoints 信息并通过 API Server 写入到 etcd 中。
  3. 接下来,所有 Node 上运行的 Proxy 进程通过 API Server 查询并监听 Service 对象与其对应的 Endpoints 信息,建立一个软件方式的负载均衡器来实现 Service 访问到后端的 Pod 的流量转发功能。

etcd 是高可用的 key/value 存储系统,用于持久化存储集群中所有的资源对象,例如集群中的 Node、Service、Pod、RC、Namespace等。

API Server 则提供了操作 etcd 的封装接口 API,以 REST 方式提供服务,这些 API 基本上都是集群中资源对象的增删改查及监听资源变化的接口,比如 创建 Pod、RC,监听 Pod 的变化等接口。API Server 是连接其他所有服务组件的枢纽

各个组件的功能

  • API Server:提供了资源对象的唯一操作入口,其他所有组件都必须通过它提供的 API 来操作资源数据,通过对相关资源数据 “全量查询” + “变化监听”,这些组件可以很 “实时“ 地完成相关业务功能,比如 某个新的 Pod 一旦被提交到 API Server 中,Controller Manager 就会立即发现并开始调度。
  • Controller Manage:集群内部的管理控制中心,其主要目的是实现 K8s 集群的 故障监测和恢复的自动化工作,比如 根据 RC 的定义完成 Pod 的复制或移除,以确保 Pod 实例数符合 RC 副本的定义;根据 Service 和 Pod 的管理关系,完成服务的 Endpoints 对象的创建和更新;其他诸如 Node 的发现、管理和状态监控、死亡容器所占磁盘空间及本地缓存的镜像文件的清理等工作也是由 Controller Manager 完成的。
  • Sechedule:集群中的调度器,负责 Pod 在集群节点中的调度分配。
  • Kubelet: 负责本 Node 节点上的 Pod 的创建、修改、监控、删除等全生命周期管理
  • Proxy:实现了 Service 的代理及软件模式的负载均衡器。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值