如何优雅地耗尽EKS中的节点?

She*_*ang 7 amazon-web-services autoscaling docker kubernetes

有时我们需要消耗Kubernetes中的节点。当我手动设置k8s集群时,我可以耗尽特定节点,然后终止该计算机。在EKS中,节点位于自动缩放组下,这意味着我无法终止特定的实例(节点)。如果我手动终止一个实例,则另一个实例(节点)将自动添加到eks群集中。

那么有没有建议的方法来耗尽EKS中的节点?

Ste*_*ang 11

这些步骤应该起作用:

1.)kubectl获取节点

2.)kubectl警戒线 <node name>

3.)kubectl流失<node name>--ignore-daemonsets

4.)AWS自动缩放终止实例在自动缩放组中--instance- <instance-id>id-应减少所需的容量

对于步骤3,您可能需要考虑改用以下方法:

kubectl流失<node name>--ignore-daemonsets --delete-local-data

对于AWS自动伸缩组,如果您的节点跨越多个区域,请考虑删除每个区域中的节点,而不是删除单个区域中的所有节点。

执行完上述命令后,检查自动伸缩组的所需编号。它应该自动减少。如果您使用的是terraform或其他自动化框架,请不要忘记在基础结构脚本中更新自动缩放组配置。

  • 在较新版本的 K8s 中,“drain”步骤也会封锁节点 (8认同)