You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Minikube中启用autoscaling/v2beta2 API版本以实现内存自动扩缩容?

解决autoscaling/v2beta2缺失及内存自动扩缩容问题

1. 先确认Kubernetes集群版本

先执行命令查看你的集群版本,不同版本对应不同的HPA API版本:

kubectl version --short
  • 若集群版本为1.23及以上:autoscaling/v2beta2已被官方废弃,直接使用稳定版autoscaling/v2即可,它完全支持内存指标的自动扩缩容配置
  • 若集群版本为1.18-1.22:autoscaling/v2beta2默认应该启用,若未在kubectl api-versions中显示,需检查API Server配置
  • 若集群版本低于1.18:不支持autoscaling/v2beta2,且旧版autoscaling/v1仅支持CPU指标,要实现内存扩缩容必须升级集群到1.18及以上版本

2. 启用autoscaling/v2beta2(针对1.18-1.22版本集群)

API Server默认启用该API组,若未生效,按以下步骤修改配置:

  • 找到API Server的静态Pod配置文件,通常路径为/etc/kubernetes/manifests/kube-apiserver.yaml
  • 在启动参数中添加或确保存在:
    --runtime-config=autoscaling/v2beta2=true
    
  • 保存配置后,Kubelet会自动重启API Server,等待重启完成后,再执行kubectl api-versions验证是否出现autoscaling/v2beta2

3. 配置内存自动扩缩容(对应版本示例)

针对autoscaling/v2beta2(1.18-1.22)

创建HPA配置文件hpa-memory.yaml:

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: memory-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: your-deployment-name  # 替换为你的Deployment名称
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: memory
      target:
        type: Utilization
        averageUtilization: 70  # 内存使用率阈值,超过该值触发扩容

应用配置:

kubectl apply -f hpa-memory.yaml

针对autoscaling/v2(1.23+)

仅需将API版本改为autoscaling/v2,其余配置逻辑一致:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: memory-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: your-deployment-name
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: memory
      target:
        type: Utilization
        averageUtilization: 70

应用配置命令同上。

4. 验证HPA状态

执行以下命令确认HPA是否正常识别内存指标:

kubectl get hpa

当TARGETS列显示当前内存使用率时,说明配置已生效。


内容的提问来源于stack exchange,提问作者Santosh Reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 10:30:43