IoTShare

【K8S】Kubernetes组件和基本概念

1. Kubernetes组件

Kubernetes的系统设计和Borg的系统架构设计理念非常相似,比如Scheduler调度器,Pod资源对象管理等。Kubernetes的总架构图如下所示。

一个Kubernetes集群主要是由控制节点(Master)工作节点(Node)组成。其中运行在控制节点和工作节点上的组件有所不同。

1. 控制节点
(1)集群的大脑,负责管理所有的节点;
(2)负责调度Pod在哪个节点上运行;
(3)控制集群运行过程中所有的状态;

API Server: 集群HTTP REST API接口,是集群控制的入口;
Scheduler: 对集群中的资源进行调度,按照一定的算法调度Pod到指定的Node节点上;
Controller-manager: 集群中所有资源对象的自动化控制中心,如自动伸缩、滚动更新等;
Etcd: 分布式存储中间件,负责存储集群中各种资源对象信息。

2. 工作节点
(1) 负责管理所有容器;
(2) 监控、上报所有Pod的运行状态。

Kubelet: 负责管理工作节点上的容器;
Kube-proxy: 负责Kubernetes服务的通信和负载均衡;
Container组件: 负责容器基础管理服务,比如Docker就是一种Container组件,接收Kubelet的指令。

下面以在Kubernetes集群中创建一个Nginx应用为例来描述各组件之间的调用关系。

  1. 用户通过APIServer下发创建Nginx应用的命令;
  2. APIServer会调用Scheduler组件计算应该将Nginx应用创建在哪一个节点上。Scheduler组件从Etcd数据库中读取控制节点、工作节点的信息,并将计算结果告知APIServer;
  3. APIServer得到结果之后,将会调用Controller-manager去调度节点安装Nginx应用;
  4. 工作节点上的Kubelet组件在得到指令之后,创建Pod,并将会调用容器组件接口创建对应的容器运行于Pod之中。Pod是Kubernetes管理的最小单元;
  5. Nginx运行完成之后,用户可以通过Kube-proxy提供的代理访问对应的服务。

2. 基本概念

(1) Master
控制节点。负责集群的管理。

(2) Node
工作节点。部署的容器运行的地方。

(3) Pod
K8S调度的基本单元。Pod运行在Node之上,容器运行于Pod之中,一个Pod中可以运行多个容器。

(4) Controller
控制器。用来对Pod进行管理(创建、销毁、监控、扩容等)。

(5) Service
Pod对外提供服务的统一入口。一个服务下可以有多个Pod。

本原创文章未经允许不得转载 | 当前页面:IoTShare » 【K8S】Kubernetes组件和基本概念

评论