当前位置: 首页 > news >正文

Kubernetes自动扩容方案

Kubernetes 自动扩容可以概括为 “三层六类”

层级类型触发维度官方/社区方案一句话说明
Pod 级HPACPU / 内存 / 自定义 / 外部指标内置副本数横向扩缩,最常用
VPACPU / 内存社区组件单 Pod 资源竖向扩缩,不改副本数
KEDA任意事件(队列、Kafka、Prometheus…)CNCF 毕业事件驱动自动扩缩,支持 Cron 计划
节点级Cluster AutoscalerPod 调度失败 / 节点资源空闲社区自动增删节点,云厂商集成最成熟
Cluster Proportional Autoscaler节点数 / CPU 核数社区系统组件随集群规模线性扩容
混合级CPA + VPA节点数 → 副本或资源社区按集群规模同步调整副本  资源

1 HPA(Horizontal Pod Autoscaler)

  • 能力:根据实时指标自动增减 Deployment / StatefulSet 副本数。

  • 指标类型

    • Resource(CPU / Memory)

    • Pods(自定义 Pod 级指标)

    • External(集群外指标,如云监控)

  • 关键字段

    • minReplicasmaxReplicas

    • behavior.scaleUp/scaleDown 限制速率、稳定窗口

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:name: web-hpa
spec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: webminReplicas: 2maxReplicas: 10metrics:- type: Resourceresource:name: cputarget:type: UtilizationaverageUtilization: 60

2 VPA(Vertical Pod Autoscaler)

  • 作用:在 不重启 Pod重启 Pod 的情况下,自动调整容器的 requests/limits

  • 模式

    • Auto:重启 Pod 以生效

    • Recreate:立即重启

    • Off:仅推荐值

  • 使用场景:数据库、缓存等 有状态单实例 服务。


3 KEDA(Kubernetes Event-Driven Autoscaler)

  • 特点:支持 50+ 事件源(Kafka、SQS、Prometheus、Cron…)。

  • 架构:KEDA Operator + Scaler → 生成 HPA 对象。

  • 示例(Kafka 队列长度 > 1000 时扩容):

apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:name: kafka-consumer
spec:scaleTargetRef:name: consumer-deploytriggers:- type: kafkametadata:topic: orderslagThreshold: "1000"

4 Cluster Autoscaler(节点自动扩缩)

  • 触发条件

    • 扩容:Pod 因资源不足 Pending

    • 缩容:节点 CPU/内存利用率 < --scale-down-utilization-threshold(默认 50%)且持续 --scale-down-delay(默认 10 min)。

  • 云厂商集成:AWS、阿里云、GCP 均提供托管版本;自建时需:

    • 部署 CA Pod(带云凭证)

    • 配置伸缩组 ID / 标签 / 安全组


5 Cluster Proportional Autoscaler(CPA)

  • 作用:让系统组件(如 DNS、Ingress Controller)的副本数 随节点数或 CPU 核数线性变化

  • 示例(每 20 节点 1 个 CoreDNS):

apiVersion: apps/v1
kind: Deployment
metadata:name: coredns
spec:replicas: 1
---
apiVersion: autoscaling/v1
kind: ClusterProportionalAutoscaler
metadata:name: coredns-cpa
spec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: corednscoresPerReplica: 20

6 混合场景:Cron + HPA

  • KEDA 的 Cron Scaler:在固定时间段(如 9:00–18:00)自动抬高 minReplicas,高峰后回落。

  • 无代码改动,只需在 ScaledObject 里加 trigger.type: cron


一句话总结

Pod 层用 HPA/VPA/KEDA,节点层用 Cluster Autoscaler,系统组件用 CPA;三层联动即可实现从“Pod”到“节点”的完整自动弹性。

http://www.dtcms.com/a/305015.html

相关文章:

  • 力扣-104. 二叉树的最大深度
  • Linux系统的虚拟控制台介绍(桌面卡死的拯救方案)
  • 深入探索爬虫与自动化脚本:释放效率的利器
  • 手写简易Spring框架
  • 万字详解——OSI七层模型:网络通信的完整架构解析
  • mysql 之多表
  • others-Facebook落地页自建归因逻辑
  • 如何快速把Clickhouse数据同步到Mysql
  • 解决百度网盘双击没反应打不开的问题
  • Element Plus常见基础组件(二)
  • 16大工程项目管理系统对比:开源与付费版本
  • 科研小tip3|Windows中的CompressAi下载与使用
  • leaflet中绘制轨迹线的大量轨迹点,解决大量 marker 绑定 tooltip 同时显示导致的性能问题
  • 机器学习-十大算法之一线性回归算法
  • 通用算法与深度学习基础
  • 机器学习课程介绍
  • 机器学习线性回归:从基础到实践的入门指南
  • 机器学习——线性回归(LinearRegression)
  • 出现错误,Microsoft store初始化失败。请尝试刷新或稍后返回。
  • 深入理解异或运算(XOR)及应用
  • 【变更性别】
  • Webpack基本概念及核心流程
  • Docker初学者需要了解的几个知识点(一):传统虚拟机 VS容器
  • vscode开发微信小程序
  • Shader开发(四)计算机图形学中的颜色定义
  • pthread库和thread库
  • 42、鸿蒙HarmonyOS Next开发:应用上下文Context
  • 20250729使用WPS打开xlsx格式的电子表格时候隐藏显示fx的编辑栏的方法
  • Linux ssh服务安装、启动与开机自启
  • ESim电工仿真软件(电脑版)使用说明