调整 Azure Kubernetes 服务 (AKS) 群集大小

在本文中,你将了解如何调整 Azure Kubernetes 服务 (AKS) 群集的大小。 适当调整群集大小来优化成本和性能非常重要。 可通过添加或删除节点来手动调整群集大小,从而满足应用程序的需求。 还可自动缩放群集来自动调整节点数量,以响应不断变化的需求。

适当调整群集大小

创建 AKS 群集时,可以指定节点数量和节点的大小,这决定了群集的计算容量。 过大的群集可能会导致不必要的成本,而过小的群集可能会导致性能问题。 可调整群集中节点的数量和大小,适当调整群集的大小来满足应用程序的需求。

适当调整群集大小时,请考虑以下因素:

  • 资源要求:了解应用程序的资源要求,确定运行工作负载所需的节点数和节点大小。
  • 性能要求:确定应用程序的性能要求,确保群集能够满足工作负载的需求。
  • 成本考量:通过适当调整群集大小来优化成本,避免与过大群集相关的不必要成本。
  • 应用程序需求:监视应用程序的需求,根据不断变化的需求调整群集的大小。
  • 基础结构约束:考虑环境的基础结构约束(例如容量或预留实例限制到特定 SKU),确保能够在环境限制内适当调整群集的大小。

监视群集性能和成本

密切监视群集的性能和成本,确保群集具有适当大小以满足应用程序的需求,并根据需要进行调整。 可使用以下资源进行监视:

何时调整群集大小

在如下情况下,你可能想要调整群集的大小:

  • 如果看到 CPU 和内存使用率一直较低,请考虑减少群集的大小。 如果使用率一直很高,请确保启用自动缩放,并在必要时增加最大节点计数。
  • AKS 的成本分析加载项会显示有关节点使用情况和成本的详细信息,这说明你可能会从群集大小调整中获益。 例如,如果看到群集的空闲成本高但使用成本低,可考虑调整群集的大小来降低成本。
  • 你遇到资源不足等性能问题。 这可能是由于群集大小不足以满足应用程序的需求。

在调整群集大小时,会发生什么情况?

增加群集大小

可以通过将节点添加到群集来增加 AKS 群集的大小。 可以将节点手动添加到群集配置自动缩放以自动调整节点数量,从而响应不断变化的需求。

增加群集的大小时,会出现以下更改:

  • 使用与群集中的现有节点相同的配置创建新节点实例。
  • 新 Pod 可能会安排在新节点上,以跨群集分发工作负载。
  • 现有 Pod 不会移动到新节点,除非由于节点故障或其他原因而重新计划它们。

减少群集大小

可以通过从群集中删除节点来减少 AKS 群集的大小。 从群集中删除节点时,这些节点会自动清空并从群集中删除。 可以从群集中手动删除节点,或配置自动缩放以自动调整节点数量,从而响应不断变化的需求。

减少群集的大小时,会出现以下更改:

  • 在从群集中删除节点之前,AKS 会正常终止这些节点并清空节点上运行的 Pod。
  • 由复制控制器管理的任何 Pod 都将重新安排在群集中的其他节点实例上。
  • 不会重启未由复制控制器管理的任何 Pod。

手动调整 AKS 群集的大小

  • 使用具有 az aks scale--node-count 参数的 --nodepool-name 命令调整 AKS 群集的大小。

运行 resize 命令之前,请使用自己的值设置所需的环境变量。 示例值应替换为实际资源组、群集、所需节点计数和节点池名称。

az aks scale --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --node-count $NUM_NODES --nodepool-name $NODE_POOL_NAME

结果:

{
  "agentPoolProfiles": [
    {
      "count": 4,
      "maxCount": null,
      "minCount": null,
      "name": "nodepool1",
      ...
    }
  ],
  "dnsPrefix": "xxxxx",
  "fqdn": "xxxxx.xxxxx.xxxxxx.chinacloudapp.cn",
  ...
}

对要调整大小的群集中的每个节点池重复此命令。 如果群集只有一个节点池,可以省略 --nodepool-name 参数。

自动调整 AKS 群集的大小

使用群集自动缩放程序自动调整节点池的大小,以响应不断变化的需求。

有关详细信息,请参阅 Azure Kubernetes 服务 (AKS) 中的群集自动缩放概述。 若要在 AKS 中配置群集自动缩放,请参阅在 Azure Kubernetes 服务 (AKS) 中使用群集自动缩放程序

后续步骤

本文介绍了如何适当调整 AKS 群集的大小。 若要详细了解如何管理 AKS 群集,请参阅以下文章: