通过 GKE 资源预留进行 GCE 自动扩缩
Posted
技术标签:
【中文标题】通过 GKE 资源预留进行 GCE 自动扩缩【英文标题】:GCE autoscaling by GKE resource reservation 【发布时间】:2016-09-12 23:44:39 【问题描述】:根据 Kubernetes documentation,
如果您使用 GCE,您可以配置您的集群,以便节点的数量将根据以下条件自动扩展:
CPU 和内存利用率。 pod 请求的 CPU 和内存量(也称为预留)。
这是真的吗?
我主要在集群上运行作业,并希望启动新实例以按需为它们提供服务。 CPU 使用率不能很好地用作此工作负载的扩展指标。
然而,根据 Google 的 CKE 文档,这似乎只能通过使用 Cloud Monitoring 指标来实现——依赖于您然后必须自定义的第三方服务。这似乎是 Kubernetes 本身声称支持的基本功能的一个令人困惑的差距。
有没有更简单的方法来实现基于我在 GKE 作业中明确指定的 CPU 要求的 GCE 实例组自动缩放的非常简单的目标?
【问题讨论】:
【参考方案1】:该部分底部的免责声明解释了为什么它在 GKE 中默认不起作用:
请注意,只有在 Google Cloud Monitoring 中可以访问节点指标时,自动缩放才能正常工作。要使指标可访问,您需要使用等于 google 或 googleinfluxdb(googleinfluxdb 是默认值)的 KUBE_ENABLE_CLUSTER_MONITORING 创建集群。另请确保您在 Google Developer Console 中启用了 Google Cloud Monitoring API。
您可以通过在配置了--sink=gcm
(like this) 的集群中建立一个 heapster 实例来使其工作,但我认为这更像是一个较旧的概念证明,而不是一个维护良好的生产- 等级配置。
The community is working hard on a better, more-fully-supported version of node autoscaling in the upcoming 1.3 release.
【讨论】:
谢谢,亚历克斯。是的,我已经读过,但这也不完整——那里描述的内容是必要的,但还不够,因为您还必须提供自定义指标。据我所知,没有合适的指标来为基于预留的扩展提供适当的数据。我会修改你的建议 - 干杯。以上是关于通过 GKE 资源预留进行 GCE 自动扩缩的主要内容,如果未能解决你的问题,请参考以下文章
Google Compute Engine 如何决定在自动扩缩时关闭哪些实例?