导读:从楼宇建设到租客入住的全流程

想象我们正在建设一栋巨型智能住宿楼,从基础设施搭建到租客入住管理,每个环节都对应Kubernetes的组件和概念。本文将按运行原理的先后顺序,系统解析Kubernetes的23个核心组件与基本概念。

把 Kubernetes 想象成一栋现代化的住宿楼:楼层是节点(Node),房间是 Pod,住户是容器(Container),前台是 API Server,档案室是 etcd,分配员是 Scheduler,楼管中心是 Controller Manager,楼层管理员是 kubelet,楼层交换机是 kube-proxy。Kubernetes 的核心目标,是让系统的实际状态不断收敛到我们声明的期望状态。


一、基础架构:楼宇的物理与网络底座


1.Cluster(集群) - 整栋大楼

  • 定义:由多个Node(宿主机)组成的统一管理单元。
  • 类比:整栋住宿楼,包含所有楼层、房间和公共设施。
  • 核心能力
    • 统一门禁系统(RBAC权限控制)
    • 跨楼层自动灾备(节点冗余)
    • 智能电梯调度(负载均衡)

2.Node(宿主机) - 楼层单元

  • 定义:承载Pod运行的物理或虚拟机器。
  • 类比:每层楼配备独立水电系统(计算、存储、网络资源)。
  • 核心组件
    • kubelet:楼层配电箱,接收中央指令管理本层房间。
    • kube-proxy:楼层网络交换机,处理租客与房间的网络通信。
    • 容器运行时:房间的应急通道(如Docker、containerd)。

3、运行主线(先后顺序)

  1. 建楼:准备 Cluster 与 Node,节点具备 kubelet、kube-proxy、容器运行时。
  2. 管楼:启动控制面(etcd → API Server → Controller Manager → Scheduler)。
  3. 分房:用户提交期望(如 Deployment),API Server 入档;Scheduler 选楼层;kubelet 在目标节点创建 Pod。
  4. 入住:容器在 Pod 内运行,挂载配置与数据卷,探针维持健康。
  5. 服务入口:为 Pod 配门牌(Service),必要时开通外部前台(Ingress)。
  6. 扩缩容与自愈:HPA 自动增减房间,控制器持续纠偏;发布与回滚通过 Deployment 实现。

二、控制平面:楼宇的管理中枢

3.API Server(前台接待)

3.API Server(前台接待)

  • 定义:集群的唯一控制入口,接收所有管理请求。
  • 类比:所有管理操作(入住、退房、维修)的统一前台。
  • 运作机制
    • 验证访客身份(Authentication)
    • 登记簿实时更新(与etcd交互)
    • 接收并分发指令(如创建房间、调整服务)

4.etcd(入住登记簿)

  • 定义:分布式键值存储系统,保存集群所有关键数据。
  • 类比:记录每间房的租客信息、房间状态、水电用量的电子登记簿。
  • 技术特征
    • 分布式账本(Raft协议)
    • 实时更新(Watch机制)
    • 历史记录可追溯(版本化存储)

5.Scheduler(房间分配管家)

  • 定义:负责将Pod分配到合适的Node上运行。
  • 类比:根据租客需求(资源、亲和性)智能选择楼层。
  • 调度策略
    • 资源最优匹配(Bin packing)
    • 特殊需求识别(节点亲和性、污点)
    • 动态调整(资源不足时重新分配)

6.Controller Manager(运维巡检组)

  • 定义:内置多种控制器,维持期望与实际一致,协调各Controller实现集群状态与期望状态一致。
  • 类比:巡检与工单派发中心,24小时巡检团队,确保楼宇正常运行。
  • 核心Controller
    • Node Controller:监控楼层状态(节点健康检查)
    • ReplicaSet Controller:确保房间数量达标(Pod副本数)
    • DaemonSet Controller:确保每个节点都运行一个副本,每层楼标配服务(如消防设备)
    • Deployment Controller:管理房间升级(滚动更新)

三、工作负载:租客与房间的映射

7.Pod(标准客房)

  • 定义:最小部署单元,包含一个或多个容器。
  • 类比:每间房可容纳多个租客(容器),共享卫浴(网络、IPC)。
  • 关键特性
    • 共享存储(Volume挂载)
    • 共享网络(同一IP)
    • 生命周期绑定(容器同生共死)

8.Deployment(客房升级服务)

  • 定义:管理Pod副本和滚动更新。
  • 类比:升级房间时,逐步替换旧房(滚动更新)。
  • 运作流程
    1.创建新的Pod副本(新房)
    2.逐步替换旧Pod(旧房)
    3.支持版本回溯(Rollback)

9.ReplicaSet(房间维护计划)

  • 定义:确保Pod副本数达标。
  • 类比:维护团队确保每层楼的房间数量符合需求。
  • 与Deployment关系:Deployment通过ReplicaSet实现副本管理。

四、服务发现与网络:楼宇的通信系统

10.Service(总机转接台)

  • 定义:稳定访问Pod的入口,抽象网络定义。
  • 类比:总机提供统一电话(ClusterIP),转接租客到具体房间。
  • 类型
    • ClusterIP:内部总机号(仅楼内访问)
    • NodePort:楼层外部专号(跨楼访问)
    • LoadBalancer:公网总机(云服务商提供)

11.Ingress(智能门禁系统)

  • 定义:管理外部HTTP/HTTPS访问的路由规则。
  • 类比:门禁系统根据访客目的(URL路径)分配到不同楼层或房间。
  • 核心功能
    • 路由规则(Host-based或Path-based)
    • TLS加密(访客身份验证)
    • 限流与熔断(防止楼宇过载)

12.kube-proxy(楼层交换机)

  • 定义:节点上的网络代理组件。
  • 类比:每层楼的网络交换机,负责房间间的通信。
  • 实现方式
    • iptables(传统方式)
    • IPVS(高性能方式)
    • 确保租客访问到正确的房间(Pod)

五、存储与配置:楼宇的资源管理

13.Volume(智能储物柜)

  • 定义:Pod的持久化存储抽象。
  • 类比:房间配套的储物柜,支持租客存取物品。
  • 类型
    • emptyDir:临时储物格(Pod运行时有效)
    • PersistentVolume:公共储物区(跨Pod共享)
    • 云存储:保险箱(如AWS EBS、GCP PD)

14.ConfigMap(客房指南手册)

  • 定义:存储非敏感配置信息。
  • 类比:提供房间使用指南(如Wi-Fi密码、服务时间)。
  • 使用方式
    • 环境变量注入(手册内容直接告知)
    • 配置文件挂载(手册实体放置在房间)

15.Secret(加密保险箱)

  • 定义:存储敏感信息(如密码、证书)。
  • 类比:楼层加密保险箱,需权限访问。
  • 安全措施
    • Base64编码(基础加密)
    • 与ConfigMap类似但专用于敏感数据

六、命名空间与安全:楼宇的分区与权限

16.Namespace(楼层分区)

  • 定义:逻辑隔离的集群子单元。
  • 类比:整栋楼按楼层划分(如A楼、B楼),租客仅在本楼层活动。
  • 用途
    • 多团队隔离(开发、测试、生产)
    • 资源配额管理(楼层水电限额)

17.RBAC(权限门禁卡)

  • 定义:基于角色的访问控制。
  • 类比:不同权限的门禁卡(前台、巡检员、租客)。
  • 核心概念
    • ClusterRole:整栋楼的管理权限(如全局管理员)
    • Role:特定楼层的权限(如楼层维护员)
    • RoleBinding:分配门禁卡给租客(权限绑定)

七、高级调度与扩展:楼宇的动态管理

18.Horizontal Pod Autoscaler (HPA)(自动扩容管家)

  • 定义:根据负载自动调整Pod副本数。
  • 类比:根据入住人数自动增减房间(如节假日扩容)。
  • 触发条件
    • CPU/Memory利用率(房间拥挤度)
    • 自定义指标(如服务延迟)

19.Node Affinity & Taint(楼层选择策略)

  • 定义:Pod与Node的亲和性及反亲和性规则。
  • 类比
    • Node Affinity:租客偏好某楼层(如带阳台)
    • Taint:楼层限制(如禁烟楼层拒绝吸烟租客)

八、典型架构图解

九、总结:楼宇建设到云原生的映射


通过住宿楼模型,我们按运行原理的先后顺序梳理了Kubernetes的:

  • 基础架构:Cluster、Node
  • 控制平面:API Server、etcd、Scheduler、Controller Manager
  • 工作负载:Pod、Deployment、ReplicaSet
  • 服务发现:Service、Ingress、kube-proxy
  • 存储与配置:Volume、ConfigMap、Secret
  • 安全与隔离:Namespace、RBAC、NetworkPolicy
  • 动态扩展:HPA、Node Affinity

这种类比学习法帮助开发者从楼宇建设到运维管理,完整理解Kubernetes的协同机制。建议在实际使用中持续完善这个心智模型。欢迎在评论区分享你的云原生"建筑"心得!


补充说明

  • Namespaces:相当于楼层分区,确保不同团队或项目在同一大楼中互不干扰。
  • HPA:当某楼层入住率高时,自动增加房间(Pod副本)。
  • NetworkPolicy:设置楼层或房间的网络访问规则(如禁止跨楼层通信)。
  • DaemonSet:确保每层楼都有一个特定服务(如监控探头)。
  • StatefulSet:管理有状态的房间(如数据库房间,需固定IP和存储)。
  • Job:临时任务(如打扫卫生),完成后关闭房间。

通过这种逻辑顺序的梳理,可以清晰看到Kubernetes从基础设施到应用管理的全链路设计。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/923644.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/923644.shtml
英文地址,请注明出处:http://en.pswp.cn/news/923644.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嘉银科技基于阿里云 Kafka Serverless 提升业务弹性能力,节省成本超过 20%

作者:四牛 前言 云消息队列 Kafka 版 Serverless 系列凭借其秒级弹性扩展、按需付费、轻运维的优势,助力嘉银科技业务系统实现灵活扩缩容,在业务效率和成本优化上持续取得突破,保证服务的敏捷性和稳定性,并节省超过 20…

RTOS 任务状态与调度机制详解

一、任务状态概述在实时操作系统(RTOS)中,任务通常具有以下几种基本状态:Running(运行态):任务正在 CPU 上实际执行。单核系统中同一时刻最多只有一个任务处于运行态。Ready(就绪态&…

TDengine 特殊选择函数 UNIQUE 用户手册

UNIQUE 函数用户手册 函数定义 UNIQUE(expr)功能说明 UNIQUE() 函数返回指定列去重后的值,功能类似于 SQL 中的 DISTINCT 关键字。对于相同的数据值,UNIQUE 函数会返回时间戳最小的那一条记录。该函数会跳过 NULL 值。 版本要求 最低版本: v3.0.0.0…

新零售第一阶段传统零售商的困境突破与二次增长路径:基于定制开发开源AI智能名片S2B2C商城小程序的实践探索

摘要:新零售第一阶段,传统零售商面临同质化竞争、用户消费意愿低迷、线上电商分流等核心困境。本文以定制开发开源AI智能名片S2B2C商城小程序为切入点,结合阿里巴巴、某知名连锁零售企业等实践案例,分析其通过“AI智能推荐供应链协…

Spark SQL 之 Join Reorder

参考链接 https://www.cnblogs.com/fxjwind/p/14768975.html join Reorder src/main/scala/org/apache/spark/sql/catalyst/optimizer/CostBasedJoinReorder.scala private def reorder(plan: LogicalPlan, output: Seq[Attribute]): LogicalPlan = {<

牛客周赛 Round 109

比赛链接&#xff1a;牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A-小红的直角三角形_牛客周赛 Round 109 签到题&#xff1a;用勾股定理即可通过此题&#xff08;需要注意对共线情况的判断&#xff09; 代码&#xff1a; // Problem: 小红的直角三角…

[deepseek]LNK2001错误即单独编译汇编并链接

方案一&#xff1a;使用预编译的 .obj 文件&#xff08;最简单&#xff09; 如果汇编代码不常改动&#xff0c;这是最省事的方法。手动编译一次&#xff1a; 打开命令行&#xff0c;切换到 spoof.asm 所在目录。使用你已有的汇编器&#xff08;或者下载一个单独的 MASM 版本&am…

php学习 (第六天)

虚拟主机 一.什么是虚拟主机&#xff1f; 1.1 概念虚拟主机&#xff08;Web Hosting&#xff09;英文&#xff1a;Web Hosting / Shared Hosting核心概念&#xff1a; 一台服务器被切分给多个用户&#xff0c;每个人只使用服务器的一部分资源&#xff08;CPU、内存、带宽、存储…

AcousticsML声学机器学习翻译教程二(特征提取Feature Etraction)

源自&#xff1a;https://github.com/RAMshades/AcousticsM 特征提取 特征是可测量的属性&#xff0c;作为系统的输入。这些输入与特定数据样本相关&#xff0c;机器学习模型可通过解读这些特征来提供预测。特征通常具有独立性&#xff0c;并能提供样本的具体细节。音频特征示例…

【论文阅读】Beyond Text: Frozen Large Language Models in Visual Signal Comprehension

本论文研究了能否利用一个“冻结”的LLM&#xff0c;直接理解视觉信号&#xff08;即图片&#xff09;&#xff0c;而不用在多模态数据集上进行微调。核心思想是把图片看作一种“语言实体”&#xff0c;把图片转换成一组离散词汇&#xff0c;这些词汇来自LLM自己的词表。为此&a…

The Oxford-IIIT宠物图像识别数据集(753M)

0、引言博主研究生期间做的是人工智能领域相关的深度学习模型研究&#xff0c;早期还没定题的时候调研了大量方向。众所周知&#xff0c;模型性能的好坏很大程度上依赖于数据集&#xff0c;因此我当时也接触了大量数据集&#xff0c;这阵子将这些数据集汇总整理了一下&#xff…

jdbc DAO封装及BaseDAO工具类

DAO概念 DAO&#xff1a;Data Access Object&#xff0c;数据访问对象。 Java是面向对象语言&#xff0c;数据在Java中通常以对象的形式存在。一张表对应一个实体类&#xff0c;一张表的操作对应一个DAO对象&#xff01; 在Java操作数据库时&#xff0c;我们会将对同一张表的增…

大模型应用开发2-SpringAI实战

SpringAI整合了大多数大模型&#xff0c;而且对于大模型开发的三种技术架构都有比较好的封装和支持&#xff0c;开发起来非常方便。不同的模型能够接收的输入类型、输出类型不一定相同。SpringAI根据模型的输入和输出类型不同对模型进行了分类&#xff1a; 大模型应用开发大多…

TDengine 时序函数 DIFF 用户手册

DIFF 函数用户手册 函数概述 DIFF 函数用于计算数据列中相邻两行数据的差值&#xff0c;通常用于分析数据的变化趋势和增量。该函数特别适用于监控智能电表数据的变化模式。 语法 SELECT DIFF(column_name [, ignore_negative]) FROM table_name;参数说明 column_name: 数…

清除gradle缓存的某个依赖

要清除 Gradle 缓存中的某个特定依赖&#xff0c;可以按照以下步骤操作&#xff1a;找到依赖在缓存中的路径 Gradle 缓存的默认位置&#xff1a; Windows: C:\Users\<用户名>\.gradle\caches\modules-2\files-2.1 macOS/Linux: ~/.gradle/caches/modules-2/files-2.1 路径…

机器人控制器开发(驱动层——伺服驱动canopen的sdo和pdo)

文章总览 一、核心区别&#xff1a;一句话概括 • ​​SDO&#xff08;服务数据对象&#xff09;​​&#xff1a;像 ​​“问询/设置”​​。用于​​点对点、非周期​​的参数配置和读取。例如&#xff0c;设置电机增益、读取当前位置等。​​速度慢&#xff0c;但确保数据准…

返利APP排行榜数据实时更新:基于 WebSocket 与 Redis 的高并发数据推送技术

返利APP排行榜数据实时更新&#xff1a;基于 WebSocket 与 Redis 的高并发数据推送技术 大家好&#xff0c;我是阿可&#xff0c;微赚淘客系统及省赚客APP创始人&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在返利APP运营中&#xff0c;用户对排…

[论文阅读] 人工智能 + 软件工程 | 告别冗余HTML与高算力消耗:EfficientUICoder如何破解UI2Code的token难题

告别冗余HTML与高算力消耗&#xff1a;EfficientUICoder如何破解UI2Code的token难题 论文信息信息类别具体内容论文原标题EfficientUICoder: A Dual-Modal Token Compression Framework for UI-to-Code Generation with Multimodal Large Language Models论文链接https://arxiv…

【STM32项目开源】STM32单片机智能语音风扇控制系统

目录 一、设计背景和意义 1.1设计背景&#xff1a; 1.2设计意义&#xff1a; 二、实物展示 三、硬件功能介绍 2.1 硬件清单&#xff1a; 2.2 功能介绍&#xff1a; 四、软件设计流程图 五、硬件PCB展示 六、软件主函序展示 七、单片机实物资料 资料获取 查看主页介…

git clone vllm

这个错误不是 vLLM 本身的问题&#xff0c;而是 pip 在 clone GitHub 仓库时失败了&#xff1a; error: RPC failed; curl 16 Error in the HTTP2 framing layer fatal: expected flush after ref listing根因通常是&#xff1a; 网络问题&#xff08;访问 GitHub 被中断 / 代理…