使用eksctl创建的EKS集群集成Grafana时CloudFormation栈创建失败求助
解决EKS集群与Grafana集成时CloudFormation栈创建失败问题
错误根源分析
从报错信息来看,核心问题是CloudFormation栈没有正确获取到EKS集群的关键网络配置信息:
- Lambda资源报错:
vpcConfig.subnetIds为空数组,说明栈未获取到集群关联的子网ID列表 - 安全组 ingress 报错:控制平面安全组ID为空,导致EC2无法识别无效的空ID
具体解决步骤
获取EKS集群的网络配置参数
执行以下命令导出集群的详细配置:eksctl get cluster --name <你的集群名称> -o yaml从输出中提取两个关键值:
vpc.subnetIds:集群关联的所有子网ID(格式类似subnet-xxxxxx)vpc.securityGroupIds:集群控制平面的安全组ID(注意不是工作节点的安全组)
重新创建CloudFormation栈并传入正确参数
回到《Prepare an existing EKS cluster》的栈创建流程,在参数输入阶段:- 找到
SubnetIds参数,手动填入第一步获取的子网ID,多个ID用逗号分隔 - 找到
ClusterControlPlaneSecurityGroup参数,填入控制平面安全组ID - 确保这两个参数绝对不能为空,必须填入符合格式的有效值
- 找到
清理失败栈后重试
- 先在CloudFormation控制台删除已失败的嵌套栈
Amazon-EKS-FunctionStack-VLJAWNJJPSPRNESTED - 再重新触发主栈的创建流程,确认所有参数无误后执行
- 先在CloudFormation控制台删除已失败的嵌套栈
额外注意事项
- 子网必须选择集群所在VPC内的子网,优先选私有子网(如果集群配置了私有子网访问)
- 控制平面安全组是EKS集群创建时自动生成的专用安全组,不要混淆成节点组的安全组
内容的提问来源于stack exchange,提问作者hashchen
相关产品推荐
相关产品推荐

