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

如何用eksctl或CloudFormation复制现有EKS集群并生成配置文件

解决方案

AWS原生CLI没有直接生成eksctl配置文件的命令,但可以通过组合AWS CLI与eksctl自身的命令,结合手动补全,来生成可用于复制现有EKS集群的eksctl YAML配置文件,具体步骤如下:

1. 用AWS CLI提取集群核心配置信息

先通过AWS CLI获取现有集群的关键参数,作为配置生成的基础:

  • 获取集群基本信息(版本、VPC关联、端点访问模式等):
    aws eks describe-cluster --name <你的集群名称> --output yaml
    
  • 获取所有托管节点组列表及每个节点组的详细配置(实例类型、最小/最大节点数、子网、IAM角色等):
    # 列出节点组
    aws eks list-nodegroups --cluster-name <你的集群名称>
    # 获取单个节点组详情
    aws eks describe-nodegroup --cluster-name <你的集群名称> --nodegroup-name <节点组名称> --output yaml
    
  • 获取关联的VPC、子网、安全组信息:
    # 从describe-cluster的输出中拿到VPC ID后,查询VPC及子网
    aws ec2 describe-vpcs --vpc-ids <集群VPC ID> --output yaml
    aws ec2 describe-subnets --filters "Name=vpc-id,Values=<集群VPC ID>" --output yaml
    # 获取集群安全组
    aws ec2 describe-security-groups --group-ids <集群安全组ID> --output yaml
    

2. 用eksctl导出兼容格式的基础配置

eksctl自带的get命令可以直接导出现有集群的eksctl风格配置,作为模板使用:

  • 导出集群级配置:
    eksctl get cluster <你的集群名称> --output yaml
    
  • 导出节点组配置:
    eksctl get nodegroup --cluster <你的集群名称> --output yaml
    

将以上两个命令的输出合并,就能得到一个接近目标格式的基础YAML文件,后续只需补全缺失细节即可。

3. 手动补全缺失的配置细节

部分高级配置(如IAM角色权限策略、集群附加组件配置、kube-proxy/coredns的自定义参数)无法通过命令直接完全导出,需要手动核对现有集群并补充:

  • 查看集群附加组件状态:
    aws eks describe-addon --cluster-name <你的集群名称> --addon-name <组件名称,如coredns、kube-proxy>
    
  • 查看集群服务角色、节点实例角色的ARN与权限:
    aws iam get-role --role-name <集群服务角色名称>
    aws iam get-role --role-name <节点实例角色名称>
    

将这些信息补充到eksctl配置文件的对应字段中,比如在iam块指定角色ARN,在addons块定义组件版本与配置。

4. 生成CloudFormation模板(可选)

如果需要改用CloudFormation部署,可基于已完善的eksctl配置文件,通过以下命令导出CloudFormation模板:

eksctl create cluster --config-file <你的eksctl配置文件.yaml> --dry-run --output cloudformation

5. 验证并部署

完成配置文件后,先用dry-run模式验证配置合法性:

eksctl create cluster --config-file <你的配置文件.yaml> --dry-run

确认无报错后,即可执行正式部署命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:30:59