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

如何避免CDK Synth生成的CloudFormation模板包含EKS资产参数

如何避免CDK生成的CloudFormation模板中出现EKS相关资产参数

你遇到的问题核心是**eks.EksOptimizedImage会触发CDK创建自定义资产(包含节点启动脚本)**,这些资产对应的S3 Bucket参数在直接用AWS CLI部署导出模板时无法被自动填充,导致部署失败。要解决这个问题,我们可以绕过CDK的资产机制,直接使用AWS官方托管的EKS优化AMI,具体修改如下:

步骤1:替换EksOptimizedImage为SSM参数获取的官方AMI

首先在你的lib/eks.ts中,去掉对eks.EksOptimizedImage的依赖,改用AWS Systems Manager(SSM)参数来获取官方EKS优化AMI的ID——这是AWS提供的公共参数,不需要CDK生成额外资产。

修改代码:

  1. 先给EKS集群指定明确的Kubernetes版本(或者从集群对象中获取版本):
// 在clusterProps中添加版本配置,根据你的需求调整版本号
const clusterProps = {
  clusterName: current_env+eksClusterName,
  defaultCapacity: 0,
  vpc: vpc,
  mastersRole: clusterAdmin,
  version: eks.KubernetesVersion.V1_29 // 示例版本,可替换为你需要的版本
}
const cluster = new eks.Cluster(this, eksClusterName, clusterProps);
  1. 通过SSM参数获取对应版本的EKS优化AMI:
// 根据集群版本构建SSM参数路径
const eksAmiParameter = `/aws/service/eks/optimized-ami/${cluster.version}/amazon-linux-2/recommended/image_id`;
// 从SSM参数加载AMI
const eksAmiId = ec2.MachineImage.fromSsmParameter(eksAmiParameter);
  1. 修改AutoScalingGroup的machineImage配置,替换之前的nodeGroupMachineImage:
const rcAsg = new asg.AutoScalingGroup(this, current_env+'ASG', {
  vpc: vpc,
  instanceType: nodeGroupInstanceType,
  machineImage: eksAmiId, // 这里用新的AMI配置
  // 以下原有配置保持不变
  minCapacity: nodeGroupMinCapacity,
  maxCapacity: nodeGroupMaxCapacity,
  desiredCapacity: nodeGroupDesiredCapacity,
  updateType: asg.UpdateType.ROLLING_UPDATE,
  vpcSubnets: {subnetType: ec2.SubnetType.PRIVATE}
});

步骤2:验证修改效果

重新运行cdk synth生成CloudFormation模板,你会发现模板中不再出现那些以AssetParameter开头的参数了——因为我们现在直接使用AWS托管的AMI,不需要CDK创建和管理额外的资产文件。

之后你就可以正常导出模板,用AWS CLI命令(比如aws cloudformation deploy)部署了。

额外说明

  • 如果你需要使用GPU优化的EKS AMI,只需要修改SSM参数路径为/aws/service/eks/optimized-ami/${cluster.version}/amazon-linux-2-gpu/recommended/image_id即可。
  • cluster.addAutoScalingGroup({ mapRole: true })会自动帮你配置节点的IAM角色权限,确保节点能正常加入EKS集群,这部分无需额外修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:08:04