You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Terraform安全变更EKS工作节点实例类型以避免停机?

如何通过Terraform变更EKS实例类型并维持服务可用性

直接修改现有节点组的实例类型会触发Terraform销毁旧节点组再创建新节点组,导致服务停机。正确的操作流程是分阶段替换节点组:

  • 第一步:新增目标实例类型的节点组
    在Terraform配置中添加一个全新的节点组资源,指定需要的CPU优化型实例类型,同时确保该节点组的标签、污点/容忍度、IAM角色、子网配置等与旧节点组匹配(或满足业务调度需求)。给新节点组设置唯一名称,避免与旧节点组冲突。
    执行terraform plan确认仅会创建新节点组,随后运行terraform apply完成创建,等待新节点全部加入EKS集群并处于Ready状态。

  • 第二步:迁移旧节点上的Pod
    使用kubectl drain命令逐个驱逐旧节点组内节点上的Pod,命令示例:

    kubectl drain <旧节点名称> --ignore-daemonsets --delete-emptydir-data
    

    可以编写脚本批量处理所有旧节点,确保所有业务Pod都调度到新节点上。验证所有服务的Pod正常运行后,再进行下一步操作。

  • 第三步:删除旧节点组
    在Terraform配置中移除原来的旧节点组资源块,执行terraform plan确认仅会销毁旧节点组,随后运行terraform apply完成删除。

额外注意事项

  • 如果使用官方terraform-aws-modules/eks/aws模块,可利用模块的多节点组管理能力,避免直接修改现有节点组配置。
  • 为业务Pod配置PodDisruptionBudget(PDB),限制驱逐过程中不可用Pod的数量,进一步降低服务影响。
  • 对于有状态应用,需确保存储卷(如EBS)已正确配置持久化策略,避免数据丢失。

内容的提问来源于stack exchange,提问作者rippie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 12:12:07