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

如何在AWS中自动将最新AMI推送至已创建的EKS集群?

如何将新的EKS黄金AMI自动推送至现有EKS集群

你提供的Terraform数据源代码如下(用于拉取最新EKS黄金AMI):

data "aws_ami" "eks_golden_ami"{
  most_recent = true
  owners = ["<account id>"]
  filter {
    name = "name"
    value = "*eks*"
  }
}

但这个数据源仅在Terraform执行plan/apply时拉取最新AMI,集群创建完成后不会自动同步新AMI到现有节点。要实现自动推送,可通过以下几种方式:

1. 用Terraform配置节点组自动刷新

如果你的EKS节点组是用Terraform管理的,可以直接在节点组资源中绑定数据源的AMI ID,并配置实例刷新策略,实现每次有新AMI时自动滚动更新节点:

示例配置:

resource "aws_eks_node_group" "eks_nodes" {
  cluster_name    = aws_eks_cluster.my_cluster.name
  node_group_name = "eks-node-group"
  node_role_arn   = aws_iam_role.eks_node_role.arn
  subnet_ids      = aws_subnet.private.*.id

  # 绑定最新的黄金AMI
  ami_type = "CUSTOM"
  custom_ami_id = data.aws_ami.eks_golden_ami.id

  # 配置实例刷新策略,自动滚动更新节点
  instance_refresh {
    strategy = "ROLLING"
    preferences {
      min_healthy_percentage = 70
    }
  }

  # 其他节点组配置...
}

每次运行terraform apply时,Terraform会检测到新的AMI ID变化,自动触发节点组的实例刷新,逐步用新AMI替换旧节点。如果要完全自动化,可以把Terraform apply放到CI/CD流水线中,定期执行或在AMI创建时触发。

2. 用AWS原生服务实现全自动化

如果不想依赖Terraform的定期执行,可以用AWS EventBridge + SSM自动化(或Lambda)来实现:

  • 创建EventBridge规则,监听黄金AMI的创建事件(筛选条件为EC2 AMI创建,且名称匹配*eks*)
  • 编写SSM自动化文档或Lambda函数,实现以下逻辑:
    • 获取EKS集群的所有节点组
    • 更新节点组的自定义AMI ID为新创建的黄金AMI
    • 触发节点组的实例刷新操作
  • 将EventBridge规则的目标设置为上述SSM文档或Lambda函数,实现新AMI创建时自动触发节点更新

3. 手动触发更新(适合小规模场景)

如果不需要完全自动化,也可以手动操作:

  • 运行terraform plan,确认检测到新的AMI ID变更
  • 执行terraform apply,触发节点组的实例刷新
  • 或者直接在AWS控制台找到对应的EKS节点组,手动替换AMI ID并启动实例刷新

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:35:23