如何根据 EKS 中的平均内存使用量自动扩展 Kubernetes Pod?
Posted
技术标签:
【中文标题】如何根据 EKS 中的平均内存使用量自动扩展 Kubernetes Pod?【英文标题】:How to autoscale Kubernetes Pods based on average memory usage in EKS? 【发布时间】:2020-09-12 12:50:56 【问题描述】:我正在运行一个 EKS 集群,并且我创建了一个 HorizontalPodAutoscaler,用于根据平均 CPU 利用率自动缩放 Pod 数量。
如何为平均内存利用率做同样的事情?
假设在 EKS 集群中运行的所有 pod,平均使用了分配给它们的 70% 的内存(使用 resources),那么应该自动扩展部署。
如何做到这一点?在CloudWatch 中创建自定义指标是唯一的方法吗?
即使 cloudWatch 是唯一的方法,如何做到这一点?是否有特定的文档或教程或博客可以做到这一点?
【问题讨论】:
【参考方案1】:请尝试以下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
应用对象
【讨论】:
这永远行不通。您可以将资源名称更改为wtf
,它会通过,但它也会查找wtf
指标。
@suren 但 CPU 和内存指标默认由 Kubernetes 提供。我指的是this
苏仁,我很想了解这个对象有什么问题?
对不起。你说的对。我刚刚测试了它并且它有效。以前做过这个,没有成功。我的错。
没问题苏仁,我觉得可以作为答案接受:)以上是关于如何根据 EKS 中的平均内存使用量自动扩展 Kubernetes Pod?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Terraform 配置 AWS EKS 自动扩缩器?
使用 EKS 中的流利位在 AWS cloudwatch 中自动创建日志组