网站首页 > 技术教程 正文
K8S是云原生最核心的内容,也是云计算的未来,下满我就全面来详解K8S原理架构@mikechen
本文作者:陈睿|mikechen
文章来源:mikechen.cc
K8S
Kubernetes(K8s)是一个强大的容器编排平台,旨在自动化应用程序的部署、扩展和管理。
Kubernetes 的核心目标是:简化大规模容器化应用的管理、部署、和运维。
在大规模容器化环境中,可以更有效地管理、和调度容器,让它们在集群中合理分布。
通过了解K8S原理架构、工作流程,可以更好地理解 Kubernetes 的工作原理,并将其应用于实际的生产环境中。
K8S原理架构
Kubernetes(K8s),架构分为两大部分:控制平面(Control Plane) 和 节点(Node)。
如下图所示:
控制平面(Control Plane)
控制平面:负责集群的管理和决策,而节点是应用程序容器的运行环境。
控制平面组件,通常运行在集群的主机上,负责集群状态的调度、监控、管理...等。
主要会包含,如下组件:
API 服务器(API Server)
API 服务器是 Kubernetes 的入口点,提供与集群进行交互的 REST API。
它是集群所有操作的“控制中心”,所有的操作(如部署、扩容、删除等)都通过 API 服务器传递。
如下图所示:
首先,所有请求都通过 API 服务器进行验证、和处理;
API 服务器负责:处理所有对集群状态的 CRUD 操作(如:创建、读取、更新和删除资源...等等)。
etcd(集群状态存储)
etcd 是一个分布式的键值存储系统,用来保存 Kubernetes 集群的所有配置信息、状态信息、以及应用的元数据。
比如: Pod、Deployment、Service .....等信息,都会被存储在 etcd 中。
etcd ,是 K8s 集群的“数据源”,保证了集群状态的一致性,使用强一致性算法,保证集群状态的一致性。
调度器(Scheduler)
调度器,负责将应用程序容器(Pod),分配到合适的节点上运行。
Pod 是 Kubernetes 中最小的可部署的计算单元,它代表着部署的一个单位。
一个 Pod 可以包含:一个、或多个容器...等等,这些容器共享网络命名空间、IP地址和存储卷...等等。
你可以将 Pod 想象成一栋房子,房子里可以住一个人(一个容器),也可以住一家人(多个容器)。
房子有自己的地址(IP地址),房子里的成员(容器),可以共享厨房(共享存储)、客厅(共享网络)...等。
它决定哪个节点可以运行新的 Pod,根据资源需求、节点容量、亲和性等条件来选择最佳节点。
根据 Pod 的资源需求、节点的资源利用率、负载等信息做出调度决策。
如果集群中没有足够的资源,调度器会将 Pod 标记为“不可调度”。
控制器管理器(Controller Manager)
控制器管理器,负责管理集群的生命周期,确保集群的实际状态与预期状态一致。
它包含多个控制器,每个控制器负责管理某种类型的资源。
常见的控制器包括:
ReplicaSet Controller:确保每个服务的副本数符合期望值;
Deployment Controller:处理 Deployment 资源,管理应用程序版本的滚动更新、和回滚;
StatefulSet Controller:管理有状态应用程序,确保 Pod 的顺序、和稳定性;
Job Controller:管理短期任务的执行。
K8S节点(Node)
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
文章来源:mikechen.cc
猜你喜欢
- 2025-06-23 Seata源码—4.全局事务拦截与开启事务处理一
- 2025-06-23 Go 语言 Web 框架 Echo 系列:基础篇—搭建 Echo 开发环境
- 2025-06-23 中兴光猫 Telnet下设置大全(中兴光猫上网设置)
- 2025-06-23 Seata源码—7.Seata TCC模式的事务处理
- 2025-06-23 这AI浏览器代理太强!AI帮你自动完成复杂网页操作,微软开源新神器
- 2025-06-23 ABACUS安装教程 - Toolchain (2-Intel)
- 2025-06-23 飞牛nas安装dify过程(飞牛nas安装小雅)
- 2025-06-23 Istio 中实现客户端源 IP 的保持(源ip端口)
- 2025-06-23 在CentOS中设置系统级代理(centos代理软件)
- 2025-06-23 理想汽车VCOS通信E2E实现分析(理想汽车系统)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)