Kubernetes – 主节点

主节点是负责管理Kubernetes集群。

为了容错,集群中可以有多个主节点。多个主节点使系统处于高可用性模式,一个主节点用于执行任务,其他主节点作为备份。

主节点使用etcd存储、管理集群状态,所有的主节点都连接到etcd。

如图所示,主节点由4个部分组成:

图

  • API server
  • Scheduler
  • Controller manager
  • ETCD

API server/API服务器

  • 所有管理任务通过主节点内的API服务器执行。
  • API服务器的接口是REST接口。
  • 命令请求处理之后,结果状态存储在分布式键值对数据库中。

Scheduler/调度器

  • 调度器将任务分配到工作节点。它存储了每个工作节点的资源使用信息。
  • 调度器以Pod和Service的形式调度任务。
  • 在调度任务之前,调度器还会考虑任务相关的服务质量、数据位置、关联、反关联等。

Controller/控制管理器

  • 是一个管理Kubernetes集群的守护进程。
  • 控制管理器还执行生命周期功能,如名称空间创建和生命周期、事件垃圾收集、pod垃圾收集、级联删除垃圾收集、节点垃圾收集等。
  • 基本上,控制器监视所管理对象的状态,如果对象的当前状态不满足期望状态,那么控制器将采取纠正步骤确保对象达到期望状态。

ETCD

  • etcd是一个用于存储集群状态的分布式键值对数据库。
  • 它可以是Kubernetes主服务器的一部分,也可以在外部配置。
  • etcd是用go语言编写的。在Kubernetes中,除了存储集群状态(基于Raft Consensus算法)之外,它还用于存储配置细节,如子网、配置映射、保密信息等。
  • Raft是一种共识算法,作为Paxos算法的替代方案而设计。共识问题是指,在多个服务器上,如何就某个取值达成一致,是状态机复制场景中的常见问题。Raft定义了三种不同的角色(领导者、追随者和候选者),并通过选出的领导者达成共识。


浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载