k8s系列教程:组件详解

在了解了为什么要使用K8s之后,我们可以再进一步的学习K8s由哪些组件构成,每个组件的作于是什么,以及他们之间如何配合工作的。

1、K8S架构

毫无疑问,k8s肯定是天生的集群架构。那么会有多个主节点(Master Node)和工作节点(Worker Node)组成。

主节点不干重活,只做领导指挥工作。工作节点才是真正做事的搬砖人。如果主节点失联,其他主节点会进行投票,重新选举主节点。

2、组件介绍

K8S组件架构图


上图左侧表示整个架构,右侧展示了多个不同的组件。我们可以把整个cluster看作一个集团。不同的工作节点(Workr Node)看作是不同的分公司(东厂,西厂,南厂)。master节点看做是集团总部。

  • API server:秘书部,所有master发给woker的命令都需要经过秘书部传递。
  • controller manager:决策者,决定做什么项目,执行什么命令。
  • etcd:资料库,保存运行时的核心数据,一个键值对数据库。
  • scheduler:调度者,决定资源的分配。到底这个任务交给哪个分厂执行。
  • kubelet:分厂的厂长,工作节点的管理者。
  • kube-proxy:分厂的门卫,负责厂区的外部联系,也知晓外部的网络环境信息。不同分厂的门卫之间的信息是保持同步的。
  • cloud controller manager:负责集团总部的外联
  • woker node:分厂

3、组件交互

  1. 通过kubectl发送命令给controller manager,运行一个tomcat容器。
  2. controller manager将这个任务保存到etcd资料库。
  3. schduler定时查询资料库,发现有新的任务,就通过api-server将任务下发到它选中的工作节点。
  4. 工作节点的kubelet会检测tomcat容器健康状态,一旦发现异常,会上报给主节点的api-serverapi-server会通知controller manager决策者。
  5. controller manager决定该任务是否交给其他工作节点完成,于是将任务重新分配,重新从步骤2开始执行。

原文链接:https://www.jdkdownload.com/k8s_component.html