如何从EKS节点组中删除特定节点(none managed eksctl)

0

【以下的问题经过翻译处理】 我使用eksctl创建了一个小型的EKS集群。它由2个节点组(非托管)组成。

第一个节点组运行管理应用程序,目前只有一个节点,第二个节点组运行“worker” pod,有3个节点。

我收到了一个事件通知,称管理节点组中的单个节点所在的EC2机器将因维护而被计划关闭。我的计划是将该节点组扩展到2个节点,然后使用kubectl drain来驱逐运行的应用程序,以便将其移动到新的节点上。到目前为止一切都好。

我的问题是,在EC2关闭原始节点之前(并且可能启动一个替代节点),如何删除原始节点?在使用eksctl将节点组缩小回单个节点时,是否有办法指定特定的节点?或者它是否足够智能,可以选择已经被驱逐/禁止的节点?

profile picture
EXPERTE
gefragt vor 5 Monaten72 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 我理解你的EKS节点中的一个节点即将进行维护。目前,你有第二个节点组,运行着3个“worker” pod。你想将该节点组缩小为2个节点,并且希望被计划维护的节点在缩小过程中被移除。你的工作负载已经转移到了其他两个节点上。

以下是我在测试环境中测试过的一些步骤,可以实现这个目标。

你可能已经知道,你的节点组有一个自动伸缩组,它会负责启动/终止节点,并保持节点数量与你的自动伸缩期望容量一致。

在EKS上进行驱逐: $ kubectl get nodes

$ kubectl cordon <节点名称>

$ kubectl drain <节点名称> --ignore-daemonsets

要终止实例并减少自动伸缩组的大小:

$ aws autoscaling terminate-instance-in-auto-scaling-group --instance-id <实例ID> --should-decrement-desired-capacity --region <区域>

参考:https://docs.aws.amazon.com/cli/latest/reference/autoscaling/terminate-instance-in-auto-scaling-group.html

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen