K8S组件说明

一个K8S集群由Master节点和Node节点两部分组成,接下来我们就说说这两部分分别包含了哪些组件。

通过以上两个图可以更好的对我们的组件进行了解!

Master节点

1.API Server

K8S集群中的核心组件,整个集群管理的API接口。集群内部各个模块之间的调用都是通过API Server进行交互的,我们对于K8S集群的操作也都是由API Server进行下发的。API Server提供的验证和授权保证了整个集群的安全。

2.Etcd

K8S是没有真正使用到数据库的,所以它把关键数据都存放在了我们的Etcd上(键值存放)。K8S集群的数据是随时发生变化的,比如说用户提交了新任务,增加了新的Node,或者Node发生了宕机,容器死掉了等等操作,都会触发我们数据的变更,而这些数据,都会由我们的Etcd进行存放,所以,也就说明了K8S上的其它组件只需要监听Etcd中的数据,就可以知道自己应该做什么。又因为Etcd只和API Server直接对接,既可以说明了Etcd上的数据都是由API Server负责汇总写入和输出的。一句话总结,Etcd保存了整个K8S集群的状态信息。

3.Scheduler

说直白点,就是当我们的Pod要创建时,Scheduler负责将我们的Pod分配归属到对应的Node上。

4.Controller manager

Pod的所有状态都是由Controller负责控制的,然后所有Controller由Controller  manager进行统一管理。也可以理解为Controller manager是负责我们K8S集群内Node、Namespace、Service、Token、Replication等资源对象的管理者,使我们的Pod维持在我们预期的工作状态。

Node节点

1.Pod

Pod是K8S最基本的操作单元,一个Pod代表集群中运行的一个进程,一个Pod由一个或多个容器组成。

2.Kubelet

是每个Node上运行的代理,负责与我们的API Server进行对接。容器的创建删除等操作都是由Kubelet进行执行的,Kubelet通过API Server监测到Scheduler产生的Pod绑定事件,然后从Etcd中获取Pod清单,然后创建删除容器。Kubelet还会周期性的监测着该Node上的容器状态,再反馈给API Server。

3.Kube-proxy

可以理解为网络代理,也可以说是个路由表,负责为我们的Service资源提供cluster内部的访问和负载均衡。

 

posted @ 2022-03-10 15:43  RFAA  阅读(318)  评论(0编辑  收藏  举报