【发布时间】:2018-07-20 08:38:37
【问题描述】:
有没有办法根据网络利用率而不是基于内存或 CPU 来扩展 Kubernetes 节点?
假设您正在向负载均衡器后面的几个节点发送数千个请求。 CPU 没有挣扎,也没有内存,但因为每秒有数千个请求,您需要额外的节点来提供服务。您如何在 Google Cloud Kubernetes 中做到这一点?
我一直在研究,但似乎找不到任何关于这种缩放的参考,我猜我不是唯一遇到这个问题的人。所以我想知道你们中是否有人知道任何最佳实践解决方案。
我想理想的解决方案是让每个节点有一个 pod 接收请求,并根据更多请求创建更多节点,并以此为基础扩大或缩小规模。
【问题讨论】:
-
不依赖K8S,根据网络流量指标运行kubectl scale?
-
Horizontal Pod Autoscaler 支持custom metrics。我无法给出更详细的答案,因为我从未使用过它。
-
集群自动缩放器基于POD allocation。我相信@svenwltr 指向了正确的方向。根据this discussion,不支持基于 HTTP 负载的自动缩放。 Horizontal Pod autoscaler 和 custom metrics 似乎是最好的方法。
标签: docker kubernetes google-cloud-platform autoscaling