在本文中,你将了解如何调整 Azure Kubernetes 服务 (AKS) 群集的大小。 适当调整群集大小来优化成本和性能非常重要。 可通过添加或删除节点来手动调整群集大小,从而满足应用程序的需求。 还可自动缩放群集来自动调整节点数量,以响应不断变化的需求。
适当调整群集大小
创建 AKS 群集时,可以指定节点数量和节点的大小,这决定了群集的计算容量。 过大的群集可能会导致不必要的成本,而过小的群集可能会导致性能问题。 可调整群集中节点的数量和大小,适当调整群集的大小来满足应用程序的需求。
适当调整群集大小时,请考虑以下因素:
- 资源要求:了解应用程序的资源要求,确定运行工作负载所需的节点数和节点大小。
- 性能要求:确定应用程序的性能要求,确保群集能够满足工作负载的需求。
- 成本考量:通过适当调整群集大小来优化成本,避免与过大群集相关的不必要成本。
- 应用程序需求:监视应用程序的需求,根据不断变化的需求调整群集的大小。
- 基础结构约束:考虑环境的基础结构约束(例如容量或预留实例限制到特定 SKU),确保能够在环境限制内适当调整群集的大小。
监视群集性能和成本
密切监视群集的性能和成本,确保群集具有适当大小以满足应用程序的需求,并根据需要进行调整。 可使用以下资源进行监视:
- 确定 Azure Kubernetes 服务 (AKS) 群集中 CPU 使用率高的情况
- 排查 Azure Kubernetes 服务 (AKS) 群集中的内存饱和问题
- Azure Kubernetes 服务 (AKS) 的成本分析加载项
何时调整群集大小
在如下情况下,你可能想要调整群集的大小:
- 如果看到 CPU 和内存使用率一直较低,请考虑减少群集的大小。 如果使用率一直很高,请确保启用自动缩放,并在必要时增加最大节点计数。
- AKS 的成本分析加载项会显示有关节点使用情况和成本的详细信息,这说明你可能会从群集大小调整中获益。 例如,如果看到群集的空闲成本高但使用成本低,可考虑调整群集的大小来降低成本。
- 你遇到资源不足等性能问题。 这可能是由于群集大小不足以满足应用程序的需求。
在调整群集大小时,会发生什么情况?
增加群集大小
可以通过将节点添加到群集来增加 AKS 群集的大小。 可以将节点手动添加到群集或配置自动缩放以自动调整节点数量,从而响应不断变化的需求。
增加群集的大小时,会出现以下更改:
- 使用与群集中的现有节点相同的配置创建新节点实例。
- 新 Pod 可能会安排在新节点上,以跨群集分发工作负载。
- 现有 Pod 不会移动到新节点,除非由于节点故障或其他原因而重新计划它们。
减少群集大小
可以通过从群集中删除节点来减少 AKS 群集的大小。 从群集中删除节点时,这些节点会自动清空并从群集中删除。 可以从群集中手动删除节点,或配置自动缩放以自动调整节点数量,从而响应不断变化的需求。
减少群集的大小时,会出现以下更改:
- 在从群集中删除节点之前,AKS 会正常终止这些节点并清空节点上运行的 Pod。
- 由复制控制器管理的任何 Pod 都将重新安排在群集中的其他节点实例上。
- 不会重启未由复制控制器管理的任何 Pod。
手动调整 AKS 群集的大小
- Azure CLI
- Azure 门户
- 使用具有
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 群集,请参阅以下文章: