K8S基础系列1----基本组件介绍

一、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,可供外部用户的访问

三、系统整体流程介绍
首先来看一张手画的流程图(凑合看)
K8S基础系列1----基本组件介绍_第1张图片

用户执行命令,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,有多种插件可供使用

四、结尾
个人总结,若有错误,请大佬指正

在这里插入图片描述

你可能感兴趣的:(kubernetes)