在特定条件下扩展 Azure Kubernetes 集群的正确方法

Correct way to scale an Azure Kubernetes Cluster under specific conditions

这是我在 Azure Kubernetes 集群扩展上遇到的一个问题的要点:一个 AKS 集群最多有 32 个节点。偶尔,它需要超过 32 个节点,从以下四个中选择两个最佳选择:

集群自动缩放器
容器实例
水平 Pod 缩放器
手动缩放

这是来自 Microsoft Azure 站点的相关文档的 link:

https://docs.microsoft.com/en-us/azure/aks/concepts-scale

翻来覆去,我还是想不出哪两个是最好的选择。正如我所见,Cluster autoscaler 和 Horizo​​ntal Pod Scaler 都可以协同工作以自动缩放,但它们必须遵守部署时定义的 32 个最大节点限制?否则,您必须使用容器实例和手动缩放?

我没有足够的现实生活经验来回答这种情况。有经验的人可以指点一下吗?

使用 2 种缩放方式:手动缩放和自动缩放,如果您遵循手动缩放,则分别在清单文件和 Azure AKS 门户中定义容器 (Pods) 和节点的最小或最大限制。

对于自动缩放,增加容器数量 (Pods) 成为 HPA (Horizo​​ntal Pod AutoScaler)cluster-autoscaler[= 的责任21=] 用于自动缩放集群节点。

通常并非架构中的所有组件都需要配置为 HPA,您需要专门规划并确定哪些组件或服务应该需要 HPA,哪些不需要。

当然,您不希望手动缩放,因为没有人愿意在半夜起床并增加资源限制来应对流量高峰。 HPA 没有限制,集群中的节点有限制,我想是 100 个节点而不是 32 个。您可以通过在 Azure Support Request.

请求进一步增加

要自动缩放 AKS,最好的方法是在 AKS 群集和 HPA 中都使用自动缩放。 HPA 是 pods 的自动缩放,AKS 群集自动缩放是针对节点的。

HPA 设置为满足您为 pods 定义的要求:在这种情况下,pods 的数量应该增加或减少。而 AKS autoscale,它是一个自动规则,如果资源不够,将增加节点数量,或者如果资源需求少于现有资源,则减少节点数量。 Cluster autoscaler 通常与 horizo​​ntal pod autoscaler 一起使用,它也在 Cluster autoscaler 中显示如下:

Cluster autoscaler is typically used alongside the horizontal pod autoscaler. When combined, the horizontal pod autoscaler increases or decreases the number of pods based on application demand, and the cluster autoscaler adjusts the number of nodes as needed to run those additional pods accordingly.

对于限制,会有三点:

  1. 您为满足要求的自动缩放规则设置的 pods 的最小和最大数量。
  2. 您为自动缩放规则设置的 AKS 群集节点的最小和最大数量,实际上,这是根据资源的需要设置的,您也可以通过这些设置来限制成本。
  3. limitation 表示 AKS 群集中的节点数。据此,AKS节点的最大数量不得超过100。

希望这对您了解 AKS 中的自动缩放有所帮助。还有什么问题,请告诉我。