一、kubernetes的主从架构

kubectl,全称 Kubernetes Control Plane,它表示Kubernetes为了实现最终的目标而构建的一组集群范围内的进程,这组进程相互协调,保证整个集群系统达到用户所期望的目标状态,比如,容器失败自动调度并重启,应用服务的扩容缩容,等等。

Kubectl 管理了Kubernetes集群中的所有Kubernetes对象及其状态,这些对象包括Pod、Service、Volume、Namespace、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job等等。

Kubernetes Control Plane主要包含两部分,一部分是Kubernetes集群Master上一组关键进程,另一个部分是在每个工作的Node节点上的一组关键进程。

kubernetes入门(02)kubernetes的架构-LMLPHP

kubernetes入门(02)kubernetes的架构-LMLPHP

二、Kubernetes Master

Kubernetes Master主要由kube-apiserver、kube-controller-manager和kube-scheduler三个进程组成,它们运行在集群中一个单独的节点上,具体说明如下:

1、kube-apiserver进程

想要操作Kubernetes集群中的任何对象,都需要经过kube-apiserver,它封装了对Kubernetes对象的所有操作,以REST接口方式提供给想要与Kubernetes交互的任何客户端。经过kube-apiserver的所有对Kubernetes对象的修改操作都将持久化到etcd存储中。

2、kube-controller-manager进程

kube-controller-manager进程负责运行各种Controller,这些Controller主要包括:

  • Node Controller
  • Replication Controller
  • Endpoints Controller
  • Service Account
  • Token Controller

3、kube-scheduler进程

kube-scheduler进程负责Kubernetes集群内部的资源调度,主要负责监视Kubernetes集群内部已创建但没有被调度到某个Node上的Pod,然后将该Pod调度到一个选定的Node上面运行。

三、Kubernetes Node

Kubernetes集群中,每个工作的Node节点上主要运行如下两个进程:

1、kubelet进程

kubelet负责监视指派到它所在Node上的Pod,还负责处理如下工作:

  • 为Pod挂载Volume
  • 下载Pod拥有的Secret
  • 运行属于Pod的容器
  • 周期性地检查Pod中的容器是否存活
  • 向Master报告当前Node上Pod的状态信息
  • 向Master报告当前Node的状态信息

2、kube-proxy进程

在Kubernetes集群中,每个Node上面都有一个该网络代理进程,它主要负责为Pod对象提供代理:定期从etcd存储中获取所有的Service对象,并根据Service信息创建代理。当某个Client要访问一个Pod时,请求会经过该Node上的代理进程进行请求转发。

3、docker 容器引擎

四、学习脑图

kubernetes入门(02)kubernetes的架构-LMLPHP

04-28 03:28