前提条件

EKS集群中设置了按需4台,最小台数为1台,最大台数为6台。

注意:

1删除节点后剩余的节点数不能小于最小台数。

2任何操作都会建议客户先行于测试环境演练并验证后,再应用于生产环境,以确保业务运行稳定。

操作步骤

1.列出注册到 EKS 的工作节点:

$ kubectl get nodes -o wide


2耗尽并隔离您的单个工作节点

$ kubectl drain {节点名称} --ignore-daemonsets


3.找出该工作节点的 Instance ID,请替换 {节点名称} 为您在步骤 1 取得的目标 EKS 节点名称:

$ aws ec2 describe-instances \

--filters 'Name=private-dns-name,Values={节点名称}' \

--query 'Reservations[*].Instances[*].[InstanceId]' \

--region {区域} \

--output json


4.请通过以下命令终止特定实例,将 {Instance ID} 替换为步骤 3 所取得的 Instance ID,命令所指定的参数 --should-decrement-desired-capacity 是不需要补回实例数量,

因此会在终止特定节点后,同时将节点组的 Desired 数量缩减:

$ aws autoscaling terminate-instance-in-auto-scaling-group \

--instance-id {Instance ID} \

--should-decrement-desired-capacity \

--region {区域}


请等待些许时间让 Auto Scaling Group 状态同步回 EKS 托管节点组。

自我判定


1在各搜索引擎中是否能找到知识信息(包括但不限于Google、百度、Bing)
2是否需要代码集成开发
3和知识库其他文章是否重复