当前位置: 首页 > 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.lryc.cn/news/604252.html

相关文章:

  • Linux 系统启动与 GRUB2 核心操作指南
  • BreachForums 黑客论坛强势回归
  • 【数据结构】用堆实现排序
  • Typecho handsome新增评论区QQ,抖音,b站等表情包
  • python基础:request请求Cookie保持登录状态
  • 关于算法的一些思考
  • PyCharm插件开发与定制指南:打造个性化开发环境
  • Vulnhub napping-1.0.1靶机渗透攻略详解
  • ITIL 4 高速IT:解耦架构——构建快速迭代的技术基座
  • JDK17 新特性跟学梳理
  • 深入解析Java元注解与运行时处理
  • [leetcode] 组合总和
  • C++多态:面向对象编程的灵魂之
  • DeepCompare文件深度对比软件的差异内容提取与保存功能深度解析
  • ESP8266 AT 固件
  • 破解企业无公网 IP 难题:可行路径与实现方法?
  • 系统学习算法:专题十五 哈希表
  • 网络安全第15集
  • docker docker、swarm 全流程执行
  • vue3插槽详解
  • Linux 线程概念与控制
  • C#_ArrayList动态数组
  • 3D打印喷头的基本结构
  • [css]旋转流光效果
  • 机械臂抓取的无模型碰撞检测代码
  • Export useForm doesn‘t exist in target module
  • 前端手写贴
  • zoho crm为什么xx是deal的关联对象但是调用函数时报错说不是关联对象
  • Docker初学者需要了解的几个知识点(三):Docker引擎与Docker Desktop
  • BERT和GPT和ELMO核心对比