news 2026/4/15 15:21:43

K8S 算力架构

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
K8S 算力架构

Kubernetes(K8s)作为云原生核心的算力架构,本质上是 K8s 对计算资源进行抽象、调度、管理和弹性伸缩,从而实现算力的高效利用和按需分配。

K8s 算力架构的核心是将底层异构的物理 / 虚拟算力资源池化,通过声明式 API 定义算力需求,由控制平面智能调度到节点,并持续保障算力供给与业务需求匹配。下面从核心组件、分层逻辑、调度机制、资源模型四个维度,把这个架构讲清楚。

一、K8s 算力架构核心组件(控制平面 + 节点层)

K8s 算力架构分为控制平面(算力大脑) 和节点层(算力执行单元),两者通过 API Server 通信,构成完整的算力管理闭环:

1. 控制平面(算力调度 / 决策核心)

组件核心作用(算力相关)
API Server算力操作的统一入口(创建 Pod、调整副本数、申请资源),所有算力请求都通过 REST API 提交
Scheduler算力调度器,核心职责是为新创建的 Pod 匹配最优节点(根据资源需求、节点负载、亲和性等规则)
Controller Manager包含多个控制器,保障算力状态符合预期:ReplicaSet:维持 Pod 副本数,弹性扩缩容
Deployment:管理无状态应用的算力版本与伸缩
StatefulSet:管理有状态应用的算力分配
HorizontalPodAutoscaler (HPA):根据 CPU / 内存 / 自定义指标自动扩缩 Pod 数量
ETCD存储所有算力相关的状态(节点资源、Pod 资源请求 / 限制、调度规则、伸缩策略),是算力架构的 “数据中心”

2. 节点层(算力执行载体)

每个节点(物理机 / 虚拟机)是算力的最小物理单元,包含以下核心组件:

组件核心作用(算力相关)
Kubelet节点算力管家:向控制平面上报节点资源(CPU / 内存 / GPU / 磁盘),接收 Pod 调度指令,启动 / 停止 Pod,监控 Pod 资源使用情况
Container Runtime容器运行时(Docker/Containerd/CRI-O):负责容器的创建、销毁,是算力的 “执行引擎”,通过 Cgroups 限制 Pod 的资源使用
Kube-proxy负责节点网络规则配置,保障 Pod 间网络通信,不直接管理算力,但算力的网络互通依赖它
CRI/CNI/CSI标准化接口:
CRI(容器运行时接口):解耦 Kubelet 与容器运行时
CNI(容器网络接口):解耦网络与算力
CSI(容器存储接口):解耦存储与算力

二、K8s 算力架构分层逻辑(自底向上)

1. 物理 / 虚拟资源层(算力底座)

  • 底层是服务器集群(x86/ARM CPU、GPU/NPU/TPU 加速卡、内存、磁盘、网络),可以是物理机、虚拟机或云服务器(ECS)。
  • K8s 不直接管理硬件,而是通过节点的 kubelet 感知节点的总资源和已用资源(如节点总 CPU 8 核、内存 32G,已用 4 核 / 16G)。

2. 资源抽象层(算力标准化)

K8s 将底层硬件资源抽象为可量化、可申请、可限制的资源单位,分为两类:
(1)可调度资源(核心算力资源)

  • CPU:单位是 “核”(1 核 = 1 个物理 CPU 核心),也可用毫核(m),1 核 = 1000m(如 500m 表示 0.5 核)。
  • 内存:单位是字节(B),常用 Mi(10241024B)、Gi(10241024*1024B)。
  • GPU:以 “卡” 为单位(如 nvidia.com/gpu: 1 表示 1 张 NVIDIA GPU 卡),需安装 GPU 插件(NVIDIA Device Plugin)。
    自定义资源:如 NPU、FPGA,可通过 Device Plugin 扩展为可调度资源。
    (2)不可调度资源(辅助资源)
  • 磁盘 IO、网络带宽、PID 数量等,通常通过 LimitRange 或自定义策略限制,不参与核心调度。

3. 资源分配层(算力按需分配)

通过 Pod 的 resources 字段定义算力需求,是 K8s 算力分配的核心规则:

apiVersion: v1 kind: Pod metadata: name: cpu-mem-demo spec: containers: - name: app image: nginx resources: requests: # 算力“申请”:调度时Scheduler保证节点有足够资源满足requests cpu: "500m" # 至少需要0.5核CPU memory: "512Mi" # 至少需要512Mi内存 limits: # 算力“限制”:容器最多能使用的资源,超了会被OOM kill或CPU限流 cpu: "1000m" # 最多使用1核CPU memory: "1Gi" # 最多使用1Gi内存
  • requests:调度依据,Scheduler 只会把 Pod 调度到 “节点剩余资源 ≥ Pod requests” 的节点。
  • limits:资源上限,由 Cgroups 强制执行,防止单个 Pod 占用过多算力影响其他应用。

4. 调度与弹性层(算力智能调度)

(1)核心调度流程

用户提交Pod

API Server接收请求并存储到ETCD

Scheduler监听未调度Pod

Scheduler筛选节点:排除资源不足、污点等不符合的节点

Scheduler打分节点:按资源利用率、亲和性、负载均衡等排序

Scheduler选择最优节点,将Pod绑定到该节点

目标节点的Kubelet接收指令,启动Pod

(2)弹性伸缩(算力动态调整)

  • 水平伸缩(HPA):根据 CPU / 内存使用率或自定义指标(如 QPS),自动增加 / 减少 Pod 数量,适配算力需求变化。
apiVersion:autoscaling/v2kind:HorizontalPodAutoscalermetadata:name:nginx-hpaspec:scaleTargetRef:apiVersion:apps/v1kind:Deploymentname:nginx-deployminReplicas:2# 最少2个PodmaxReplicas:10# 最多10个Podmetrics:-type:Resourceresource:name:cputarget:type:UtilizationaverageUtilization:70# CPU利用率超过70%时扩容
  • 垂直伸缩(VPA):自动调整 Pod 的 requests/limits(如内存不够时调高 limits),适合算力需求不稳定的应用。
  • 集群自动伸缩(CA):当集群内所有节点资源不足时,自动创建新节点;资源空闲时,自动删除节点(云厂商场景常用,如阿里云 ACK、AWS EKS)。

5. 算力隔离与优先级层(算力保障)

  • 资源隔离:通过 Linux Cgroups 实现 Pod 级别的 CPU / 内存隔离,防止 “算力抢占”(如一个 Pod 占用 100% CPU 导致其他 Pod 不可用)。
  • Pod 优先级(PriorityClass):为核心应用设置高优先级,节点资源不足时,优先保障高优先级 Pod 的算力,低优先级 Pod 会被驱逐。
  • 污点(Taints)和容忍(Tolerations):实现节点算力的专属化(如给 GPU 节点加污点,只有 AI 应用的 Pod 能容忍,避免普通应用占用 GPU 算力)。

三、K8s 异构算力架构(GPU/NPU/AI 算力)

针对 AI、高性能计算场景,K8s 扩展了异构算力管理能力,核心是 Device Plugin 机制:

  1. 硬件厂商(NVIDIA、华为昇腾、Intel)提供 Device Plugin,部署在节点上。
  2. Device Plugin 向 K8s 注册 GPU/NPU 等异构资源(如 nvidia.com/gpu: 2 表示节点有 2 张 GPU 卡)。
  3. 用户在 Pod 中申请异构资源,K8s 调度时会匹配有对应资源的节点。
spec:containers:-name:ai-trainingimage:tensorflow/tensorflowresources:limits:nvidia.com/gpu:1# 申请1张GPU卡
  1. 进阶方案:K8s 还支持 GPU 分片(如将 1 张 GPU 卡分为 4 份,供 4 个 Pod 使用)、共享 GPU 等精细化算力管理。

四、K8s 算力架构与云原生的结合

  • Serverless K8s:如阿里云 ASK、AWS Fargate,用户无需管理节点,只需提交 Pod,K8s 自动分配算力,按 Pod 使用量计费,极致弹性。
  • 边缘 K8s:如 K3s、KubeEdge,将 K8s 算力架构下沉到边缘节点,适配边缘场景的低资源、低时延需求。
  • 多集群算力调度:通过 Karmada、Cluster API 实现跨集群算力调度,统一管理多地域、多云的算力资源。

总结

K8s 算力架构的核心可归纳为 3 点:

  1. 资源抽象:将 CPU / 内存 / GPU 等算力资源标准化为可申请、可限制的单位,实现算力池化。
  2. 智能调度:通过 Scheduler 和控制器,根据资源需求、优先级、亲和性等规则,将算力精准分配到最优节点。
  3. 弹性伸缩:通过 HPA/CA/VPA 等机制,动态调整 Pod 数量和节点数量,适配算力需求的动态变化。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/8 19:47:16

B站字幕下载终极指南:5分钟掌握视频文字内容智能提取技巧

B站字幕下载终极指南:5分钟掌握视频文字内容智能提取技巧 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 还在为手动整理B站视频字幕而烦恼&#xff1…

作者头像 李华
网站建设 2026/4/15 3:26:43

暗黑破坏神2存档编辑器终极指南:10个超实用功能完全解析

暗黑破坏神2存档编辑器终极指南:10个超实用功能完全解析 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 想要在暗黑破坏神2单机版中打造完美角色吗?d2s-editor这款基于Web的存档编辑器为你打开了通往游戏…

作者头像 李华
网站建设 2026/4/11 18:59:25

B站字幕智能提取工具完整使用指南

B站字幕智能提取工具完整使用指南 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 还在为手动整理B站视频字幕而烦恼?BiliBiliCCSubtitle这款强大工具让…

作者头像 李华
网站建设 2026/4/12 11:37:33

Windows 11右键菜单定制完全指南:三步配置实现工作效率翻倍

Windows 11右键菜单定制完全指南:三步配置实现工作效率翻倍 【免费下载链接】ContextMenuForWindows11 Add Custom Context Menu For Windows11 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuForWindows11 Windows 11右键菜单定制是提升系统操作…

作者头像 李华
网站建设 2026/4/10 21:59:40

7个创新技巧:打造完美岛屿设计的终极指南

7个创新技巧:打造完美岛屿设计的终极指南 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal Crossing)启发而创建的…

作者头像 李华