如何根据 EKS 中的平均内存使用量自动缩放 Kubernetes Pods?

How to autoscale Kubernetes Pods based on average memory usage in EKS?

我是 运行 一个 EKS cluster and I have a HorizontalPodAutoscaler 创建的,根据平均 CPU 利用率自动缩放 pods 数量。

如何为平均内存利用率做同样的事情?

假设 EKS 集群中的所有 pods 运行 平均使用了分配给它们的内存的 70%(使用 resources),那么部署应该自动缩放.

如何做到这一点?在 CloudWatch 中创建自定义指标是唯一的方法吗?

即使只有cloudWatch,怎么办?是否有特定的文档或教程或博客可以执行此操作?

请尝试以下 HPA 配置对象。

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: nginx-hpa
  namespace: default
spec:
  scaleTargetRef:
    apiVersion: extensions/v1beta1
    kind: Deployment
    name: nginx
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: memory
      targetAverageUtilization: 70

并使用 kubectl apply

应用对象