【问题标题】:Why is running managed IG autoscaling not recommended with GKE?为什么不建议使用 GKE 运行托管 IG 自动缩放?
【发布时间】:2018-06-18 15:45:42
【问题描述】:

根据此页面https://cloud.google.com/compute/docs/autoscaler/#specifications:“请勿将 Compute Engine 自动缩放与 Google Kubernetes Engine 拥有的托管实例组一起使用”。知道为什么吗?我正在生产中这样做,效果很好。

我的大部分 K8s 资源都是 daemonset,每次使用托管 IG 自动扩缩器弹出一个新的 K8s 节点时,都会在该节点上调度一些 pod,从而有效地平衡负载。

我发现使用 Node Autoscaler 运行 HPA 很麻烦。我们必须等待两者都开始实际扩展,精确设置资源请求并运行 Heapster 来测量实际资源消耗。托管 IG 自动扩缩器更加简单且反应灵敏。

我已经阅读了https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#should-i-use-a-cpu-usage-based-node-autoscaler-with-kubernetes,但除了“不要这样做”/“不兼容”之外没有太多信息。当然可以删除“具有一些系统关键 pod 的节点”,但这就是我们运行 3 个此类系统关键 pod 副本的原因。

所以问题是,你认为这不起作用的任何其他原因吗?

【问题讨论】:

    标签: google-cloud-platform google-compute-engine google-kubernetes-engine


    【解决方案1】:

    将 Compute Engine (GCE) 与 Kubernetes (GKE) 一起使用时,您可能会遇到 GKE 想要安排一个新 pod 但没有可用节点的情况,因为您的 GCE 自动缩放触发器没有被触发(例如节点在CPU 阈值)。相比之下,使用 GKE 自动缩放将创建一个新节点,如果它需要一个新节点来调度 Pod。它消除了 GCE 中自动缩放的启发式猜测。

    也就是说,我发现有时 GCE 自动缩放仍然适用。我使用两个不同的节点池,一个为我的“常规” Pod 使用 Kubernetes 自动缩放,另一个为需要以不同方式扩展的 Pod 使用 GCE 自动缩放。我使用 nodeSelector 来告诉 pod 他们应该在哪个节点池上运行。

    【讨论】:

      猜你喜欢
      • 2019-12-30
      • 2019-08-16
      • 1970-01-01
      • 2019-06-23
      • 1970-01-01
      • 2021-09-16
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多