K8S基础系列1----基本组件介绍
一、master节点和node的区别K8S集群的master节点和node节点,区别就是运行的服务不一样master节点运行的服务:Etcd、ApiServer、ControllerManager、Schedulernode节点运行的服务:Kubelet、Kube-Proxy二、口语化介绍各组件的功能:Etcd:K8S集群的数据中心,所有的资源都会存储到etcd中,K8S在启动的时候,都会去Etc
一、master节点和node的区别
K8S集群的master节点和node节点,区别就是运行的服务不一样
master节点运行的服务:Etcd、ApiServer、ControllerManager、Scheduler
node节点运行的服务:Kubelet、Kube-Proxy
二、口语化介绍各组件的功能:
Etcd:K8S集群的数据中心,所有的资源都会存储到etcd中,K8S在启动的时候,都会去Etcd读取数据
Apiserver:K8S最核心的服务,我们在敲入命令对K8S进行操作的时候,由Apiserver来执行我们输入的命令,调度系统
ControllerManager:直译过来就是控制中心,字面意思也能看出来,它的作用就是控制容器,一直监控容器的状态,如果出现了异常,会对容器进行重启、删除创建新容器等等操作
Scheduler:K8S集群的调度中心,它监控node节点的状态,获取集群资源,按照预设的分配规则或者系统自己处理,合理分配使用集群的所有资源,来确定使用哪个node来执行任务(再说通俗点就是决定把pod创建到哪台node上)
Kubelet:控制node节点上的容器
Kube-Proxy:在node节点上的容器起该服务,可以在node机器上映射一个端口,通过node ip+port,可供外部用户的访问
三、系统整体流程介绍
首先来看一张手画的流程图(凑合看)
用户执行命令,apiserver来执行调度,执行命令,controller manager保证每一个pod都高可用,pod一旦挂死,就重启,重启失败或者pod所在的node都挂死,就在另外的node上启动pod,确保pod的高可用;scheduler获取集群的资源情况,合理分配pod起在那个node上;etcd存储整个K8S的数据、资源,每当K8S启动时,都会去etcd读取数据
Kubelet直接接受apiserver的调度,apiserver控制kubelet创建pod,kubelet控制pod创建容器;
kubeproxy可以映射端口,将服务的端口暴露出来,这样用户可以访问到这个node中的服务
上图可以看到2个etcd,是为了说明etcd其实可以直接部署在master接点上,也可以单独部署,只需要在部署K8S的时候,指定好etcd即可。只需要选择一种方式就好
补充说明一点,容器之间需要扩主机通信时,此时就需要网络插件plugin network,有多种插件可供使用
四、结尾
个人总结,若有错误,请大佬指正
更多推荐
所有评论(0)