如何使用扩展/缩减策略实现 Kubernetes 水平 pod 自动扩展? 支持可配置的缩放行为

问题描述

AWS EKS 中的 Kubernetes v1.19

我正在尝试在我的 EKS 集群中实现水平 Pod 自动缩放,并试图模仿我们现在使用 ECS 所做的事情。使用ECS,我们做类似下面的事情

  • 在连续 3 次 1 分钟采样周期后 CPU >= 90% 时向上扩展
  • 在连续 5 次 1 分钟采样周期后 CPU
  • 在连续 3 次 1 分钟采样周期后内存 >= 85% 时按比例放大
  • 在连续 5 次 1 分钟采样周期后内存

我正在尝试使用 HorizontalPodAutoscaler 类型,helm create 给了我这个模板。 (请注意,我修改了它以满足我的需要,但 metrics 节仍然存在。)

{- if .Values.autoscaling.enabled }}
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: {{ include "microserviceChart.Name" . }}
  labels:
    {{- include "microserviceChart.Name" . | nindent 4 }}
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: {{ include "microserviceChart.Name" . }}
  minReplicas: {{ include "microserviceChart.minReplicas" . }}
  maxReplicas: {{ include "microserviceChart.maxReplicas" . }}
  metrics:
    {{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
    - type: Resource
      resource:
        name: cpu
        targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
    {{- end }}
    {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
    - type: Resource
      resource:
        name: memory
        targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
    {{- end }}
{{- end }}

但是,我如何适应上述模板中 Horizontal Pod Autoscaling 中显示的放大/缩小信息,以匹配我想要的行为?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)