Kubernetes – 架构

Kubernetes 集群主要由称为节点的工作机器和控制平面组成。集群中至少有一个工作节点。Kubectl CLI 与控制平面通信,控制平面管理工作节点。

Kubernetes – 集群架构

如下图所示,Kubernetes 采用客户端-服务器架构,有主节点和工作节点,主节点安装在单个 Linux 系统上,而节点安装在多个 Linux 工作站上。 

Kubernetes 组件

Kubernetes由许多组件组成,每个组件在整个系统中都扮演着特定的角色。这些组件可以分为两类:

  • 节点:每个 Kubernetes 集群至少需要一个工作节点,它是组成我们将要部署容器的节点的工作机器的集合。
  • 控制平面:工作节点及其包含的任何 pod 都将位于控制平面之下。 

 

控制平面组件

它基本上是各种组件的集合,可帮助我们管理集群的整体运行状况。例如,如果你想设置新的 Pod、销毁 Pod、扩展 Pod 等。基本上,控制平面上运行 4 个服务:

Kube-API 服务器

API 服务器是 Kubernetes 控制平面的一个组件,用于公开 Kubernetes API。它就像是集群的初始网关,通过 Kubectl 等 CLI 监听更新或查询。Kubectl 与 API 服务器通信,以告知需要执行的操作,例如创建 Pod 或删除 Pod 等。它还可以充当守门人。它通常会验证收到的请求,然后将其转发给其他进程。任何请求都不能直接传递给集群,必须通过 API 服务器传递。

Kube 调度器

当 API 服务器收到调度 Pod 的请求时,该请求将被传递给调度程序。它智能地决定在哪个节点上调度 Pod,以提高集群效率。

Kube-控制器-管理器

kube-controller-manager 负责运行处理集群控制循环各个方面的控制器。这些控制器包括复制控制器(确保给定应用程序的所需副本数正在运行)和节点控制器(确保根据节点的当前状态正确将其标记为“就绪”或“未就绪”)。

etcd 

它是集群的键值存储。集群状态更改存储在 etcd 中。它充当集群大脑,因为它会告知调度程序和其他进程哪些资源可用以及集群状态更改。

节点组件

这些是实际工作发生的节点。每个节点可以有多个 Pod,Pod 内有容器运行。每个节点中有 3 个进程用于调度和管理这些 Pod。

容器运行时

需要容器运行时来运行在 pod 内部 pod 上运行的应用程序容器。示例-> Docker

库贝莱特

 kubelet 与容器运行时以及 Node 交互。它是负责启动包含容器的 pod 的进程。

 

kube-proxy

它是负责将请求从服务转发到 pod 的进程。它具有智能逻辑,可以将请求转发到工作节点中的正确 pod。

 

Kubectl 命令

以下是与 Kubernetes 集群交互的一些常用命令:

要查看集群中所有 pod 的列表,可以使用以下命令:

kubectl get pods

要查看集群中所有节点的列表,可以使用以下命令:

kubectl get nodes

要查看集群中所有服务的列表,可以使用以下命令:

kubectl get services

 

posted @ 2024-06-04 22:18  wongchaofan  阅读(3)  评论(0编辑  收藏  举报