AKS集群中启用集群自动缩放后找不到名称为”cluster-autoscaler-xxx”的Pod

40次阅读
没有评论

问题描述

在Azure Kubernetes Service (AKS)集群中的两个节点池中启用了集群自动缩放,并发现它正常工作。然而,当他检查kube-system命名空间中运行的Pod时,却没有找到名称为”cluster-autoscaler”的Pod。他的理解是,在AKS集群中,集群自动缩放应该部署一个名为”cluster-autoscaler-XXX”的Pod在kube-system命名空间中。他请求帮助以更好地理解这一情况。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

集群自动缩放工作原理

在Azure Kubernetes Service (AKS)集群中启用集群自动缩放后,系统会根据工作负载和资源利用情况动态调整节点池的大小。这可以确保在负载增加时自动添加节点,以满足资源需求,而在负载减少时自动缩减节点,以节省成本。集群自动缩放的背后是Azure提供的自动缩放机制,它会根据配置的规则监视集群的资源使用情况,并自动调整节点的数量。

“cluster-autoscaler” Pod的存在

你提到在kube-system命名空间中找不到名为”cluster-autoscaler”的Pod,这是因为AKS的集群自动缩放并不会在kube-system命名空间中部署名为”cluster-autoscaler”的Pod。实际上,AKS使用的集群自动缩放器是由Azure管理的,而不是部署为一个普通的Pod。

Azure会在底层管理集群的自动缩放过程,它会监视节点池的资源利用情况以及工作负载,然后根据预定义的规则来自动调整节点池的大小。这个过程并不需要部署一个单独的”cluster-autoscaler” Pod。因此,在kube-system命名空间中找不到这样的Pod是正常的情况。

查看自动缩放事件

如果你想了解集群自动缩放的状态以及是否发生了自动缩放事件,可以通过Azure门户或Azure CLI来查看。以下是通过Azure CLI查看自动缩放事件的示例命令:

az aks show --resource-group <resource-group-name> --name <aks-cluster-name> --query "nodeResourceGroup"

这会返回包含节点资源组名称的输出。然后,你可以使用此资源组名称进一步查看该资源组中的自动缩放事件:

az monitor activity-log list --resource-group <node-resource-group-name> --query "[?eventSource=='Microsoft.ContainerService/managedClusters' && operationName=='Scale' && statusCode=='Succeeded']"

这将列出成功完成的自动缩放事件。这些事件记录了节点池大小的变化以及触发自动缩放的原因。

总结

在Azure Kubernetes Service (AKS)集群中,启用集群自动缩放后,并不会在kube-system命名空间中部署名为”cluster-autoscaler”的Pod。相反,Azure会在底层管理自动缩放过程,根据资源利用情况和工作负载动态调整节点池的大小。你可以通过Azure CLI查看自动缩放事件以了解自动缩放的状态和触发原因。这种集群自动缩放的机制可以确保集群始终具有适当数量的节点来满足工作负载需求。

正文完