k8s 核心原理分析
本文内容
- API Server 原理分析
- Controller Manager原理分析
- Scheduler 调度器原理分析
- kubelet 运行机制分析
一. k8s API Server原理分析
1) API Server 作用:
- 集群内各模块间数据交互和通信的中心枢纽,是系统的"数据总线"
API Server提供k8s各类资源对象的增删改查以及Watch等http rest接口
2) API Server 功能特性:
- 集群管理的API入口
- 资源配额控制的入口
- 提供了完善的集群安全机制
API server进程运行在master节点上,命令行工具kubectl就是和API Server进行交互
3) k8s集群各个模块之间如何通信?
- 集群内各个功能模块通过API Server将信息存入etcd,当需要获取和操作这些数据时,则通过API Server提供的REST接口来实现,从而实现各模块之间的信息交互
模块间通信样例如下
kubelet进程与API Server的交互 :每个Node节点上的kubelet每隔一个时间周期,就会调用一次API Server的REST接口报告自身状态,API Server接收到这些信息后,将节点状态信息更新到etcd中
二. Controller Manager 原理分析
1) Controller Manager 作用
- 集群内部的管理控制中心
- 负责集群内部Node,Pod副本,服务端点,命名空间,服务账号,资源定额等的管理
当某个Node意外宕机时,Controller Manager会及时发现此故障并执行自动化修复流程,确保集群始终处于预期的工作状态
2) Controller Manager 结构
所属控制器 | 描述 |
---|---|
Replication Controller | 副本控制器 |
Node Controller | 节点控制器 |
ResourceQuota Controller | 资源控制器 |
Namespace Controller | 命名空间控制器 |
ServiceAccount Controller | 准入控制 |