K8S原理架构详解(图文全面总结)

K8S原理架构详解(图文全面总结)

K8S是云原生最核心的内容,也是云计算的未来,下满我就全面来详解K8S原理架构@mikechen

K8S

Kubernetes(K8s)是一个强大的容器编排平台,旨在自动化应用程序的部署、扩展和管理。

K8S原理架构详解(图文全面总结)

Kubernetes 的核心目标是:简化大规模容器化应用的管理、部署、和运维。

在大规模容器化环境中,可以更有效地管理、和调度容器,让它们在集群中合理分布。

通过了解K8S原理架构、工作流程,可以更好地理解 Kubernetes 的工作原理,并将其应用于实际的生产环境中。

 

K8S原理架构

Kubernetes(K8s),架构分为两大部分:控制平面(Control Plane) 和 节点(Node)。

如下图所示:

K8S原理架构详解(图文全面总结)

控制平面(Control Plane)

控制平面:负责集群的管理和决策,而节点是应用程序容器的运行环境。

控制平面组件,通常运行在集群的主机上,负责集群状态的调度、监控、管理…等。

主要会包含,如下组件:

API 服务器(API Server)

API 服务器是 Kubernetes 的入口点,提供与集群进行交互的 REST API。

它是集群所有操作的“控制中心”,所有的操作(如部署、扩容、删除等)都通过 API 服务器传递。

如下图所示:

K8S原理架构详解(图文全面总结)

首先,所有请求都通过 API 服务器进行验证、和处理;

API 服务器负责:处理所有对集群状态的 CRUD 操作(如:创建、读取、更新和删除资源…等等)。

 

etcd(集群状态存储)

etcd 是一个分布式的键值存储系统,用来保存 Kubernetes 集群的所有配置信息、状态信息、以及应用的元数据。

比如: Pod、Deployment、Service …..等信息,都会被存储在 etcd 中。

etcd ,是 K8s 集群的“数据源”,保证了集群状态的一致性,使用强一致性算法,保证集群状态的一致性。

 

调度器(Scheduler)

调度器,负责将应用程序容器(Pod),分配到合适的节点上运行。

Pod 是 Kubernetes 中最小的可部署的计算单元,它代表着部署的一个单位。

一个 Pod 可以包含:一个、或多个容器…等等,这些容器共享网络命名空间、IP地址和存储卷…等等。

K8S原理架构详解(图文全面总结)

你可以将 Pod 想象成一栋房子,房子里可以住一个人(一个容器),也可以住一家人(多个容器)。

房子有自己的地址(IP地址),房子里的成员(容器),可以共享厨房(共享存储)、客厅(共享网络)…等。

它决定哪个节点可以运行新的 Pod,根据资源需求、节点容量、亲和性等条件来选择最佳节点。

根据 Pod 的资源需求、节点的资源利用率、负载等信息做出调度决策。

如果集群中没有足够的资源,调度器会将 Pod 标记为“不可调度”。

 

控制器管理器(Controller Manager)

控制器管理器,负责管理集群的生命周期,确保集群的实际状态与预期状态一致。

它包含多个控制器,每个控制器负责管理某种类型的资源。

常见的控制器包括:

K8S原理架构详解(图文全面总结)

ReplicaSet Controller:确保每个服务的副本数符合期望值;

Deployment Controller:处理 Deployment 资源,管理应用程序版本的滚动更新、和回滚;

StatefulSet Controller:管理有状态应用程序,确保 Pod 的顺序、和稳定性;

Job Controller:管理短期任务的执行。

 

K8S节点(Node)

K8S工作节点架构,如下图所示:

K8S原理架构详解(图文全面总结)

每个节点上运行多个 K8s 组件,来实现容器的部署、管理和监控。

K8S整体流程,如下:

 

首先,用户创建资源。

用户通过 kubectl 命令行工具、或其他客户端工具,向 kube-apiserver 发送创建资源的请求。

然后,API Server 验证并存储

kube-apiserver 验证请求,并将其存储到 etcd 中。

然后,开始调度器调度

kube-scheduler ,监视 etcd 中的新 Pod,根据调度策略选择合适的 Node,并将 Pod 的调度信息写入 etcd。

然后,Node 上执行

kubelet 监视 etcd 中的 Pod 信息,并根据这些信息启动容器。

然后,服务发现与负载均衡

kube-proxy 负责服务发现和负载均衡,将服务请求转发到后端的 Pod。

 

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧