一、Kubernetes架构图

Kubernetes核心组件篇 (一) : Kubernetes核心组件组成

可以看到Kubernetes是由Master节点与Node节点组成,在Master节点当中包含etcd高可用数据库、API Server、Scheduler以及Controller Manager,在Node节点上一般包含运行着守护进程Kubelet以及Docker,我们在Kubernetes上创建的应用其实都是在Node节点上面运行的,Master节点是调度节点,主要是帮助我们进行调度的

二、Kubernetes组件组成

1、Master节点

etcd

etcd存放的就是集群的状态,一般把所有的集群信息都存放到etcd当中,etcd不属于Kubernetes的某一个部分,而是单独集群部署的,API Server是它唯一的入口,可以直接访问etcd。

API Server

API Server提供了操作资源的唯一入口,例如认证、授权、访问控制、注册或者发现,都是通过API Server来完成的。

Controller Manager

Controller Manager是一个控制器,负责维护集群的状态,例如Pod的故障检测、Pod的自动扩展、滚动更新等都是它来完成的

Scheduler

Scheduler调度控制器负责整个集群的资源调度,按照默认或者指定的调度策略将Pod调度到符合要求的Node节点上运行

2、Node节点

Kubelet

Kubelet维护整个容器的生命周期,API Server创建Pod,Scheduler将Pod调度到符合要求的Node节点上,该节点上的Kubelet就会去运行Pod以及Docker,Pod的存储以及网络都是Kubelet进行管理的

Docker

Docker负责镜像的管理,例如镜像的拉取、启动容器等

Kube-proxy

Kube-proxy主要是提供整个集群内部Service的负载均衡和服务发现

3、组件之间的通信

API Server是etcd访问的唯一入口,只有API Server才能访问和操作etcd集群;API Server对内和对外都提供了统一的REST API,其他组件都是通过API Server进行通信的

用户使用kubectl命令来请求API Server接口完成相应操作

Kubernetes内部组件都是通过一种watch机制去监控API Server中的资源变化,然后对其做一些相应的操作

相关文章: