【问题标题】:Error Creating aws EKS Kubernetes cluster using eksctl使用 eksctl 创建 aws EKS Kubernetes 集群时出错
【发布时间】:2021-04-13 12:07:42
【问题描述】:

我尝试运行以下代码并使用 eksctl 创建 aws eks kubernetes 集群,

eksctl create cluster \

--版本 1.14
--region us-west-2
--node-type t3.medium
--nodes 3
--nodes-min 1
--nodes-max 4
--name 我的演示
--kubeconfig=$HOME/kubeconfigs/demo-cluster-config.yaml

结果我得到了以下错误,

[ℹ] eksctl 版本 0.35.0

[ℹ] 使用区域 us-west-2

[ℹ] 将可用区设置为 [us-west-2b us-west-2a us-west-2c]

[ℹ] us-west-2b 的子网 - public:192.168.0.0/19 private:192.168.96.0/19

[ℹ] us-west-2a 的子网 - public:192.168.32.0/19 private:192.168.128.0/19

[ℹ] us-west-2c 的子网 - public:192.168.64.0/19 private:192.168.160.0/19

[ℹ] 节点组“ng-6c4aa136”将使用“ami-0f9f033f2355ab1f8”[AmazonLinux2/1.18]

[ℹ] 使用 Kubernetes 1.18 版

[ℹ] 在“us-west-2”区域中使用非托管节点创建 EKS 集群“my-demo”

[ℹ] 将为集群本身和初始节点组创建 2 个单独的 CloudFormation 堆栈

[ℹ] 如果您遇到任何问题,请检查 CloudFormation 控制台或尝试 'eksctl utils describe-stacks --region=us-west-2 --cluster=my-demo'

[ℹ] 不会为“us-west-2”中的集群“my-demo”启用 CloudWatch 日志记录

[ℹ] 你可以使用 'eksctl utils update-cluster-logging --enable-types={SPECIFY-YOUR-LOG-TYPES-HERE (eg all)} --region=us-west-2 - -cluster=my-demo'

[ℹ] Kubernetes API 端点访问将为“us-west-2”中的集群“my-demo”使用默认的 {publicAccess=true, privateAccess=false}

[ℹ] 2个顺序任务:{创建集群控制平面“my-demo”,3个顺序子任务:{无任务,创建插件,创建节点组“ng-6c4aa136”}}

[ℹ] 构建集群堆栈“eksctl-my-demo-cluster”

[ℹ] 部署堆栈“eksctl-my-demo-cluster”

[✖] 等待 CloudFormation 堆栈“eksctl-my-demo-cluster”时出现意外状态“ROLLBACK_IN_PROGRESS”

[ℹ] 获取堆栈事件以尝试排除故障的根本原因

[✖] AWS::IAM::Role/ServiceRole: CREATE_FAILED –“资源创建已取消”

[✖] AWS::EC2::InternetGateway/InternetGateway: CREATE_FAILED –“互联网网关的最大数量 已达到。 (服务:AmazonEC2;状态代码:400;错误代码:InternetGatewayLimitExceeded; 请求 ID:e53b2d09-6d4a-4eef-b8ed-b52c1104bb89;代理:null)"

[✖] AWS::EC2::VPC/VPC: CREATE_FAILED –“已达到最大 VPC 数量。(服务:AmazonEC2;状态代码:400;错误代码:VpcLimitExceeded;请求 ID:e1dca3e9-6134- 41d9-92a3-4bf44c0c375f;代理:null)"

[✖] AWS::EC2::EIP/NATIP: CREATE_FAILED –“已达到最大地址数。(服务:AmazonEC2;状态代码:400;错误代码:AddressLimitExceeded;请求 ID:50f1e75a-404f- 40ff-820a-13a18a3d2f3f;代理:null)"

[!] 发生 1 个错误且未正确创建集群,您不妨检查 CloudFormation 控制台

[ℹ] 清理资源,运行 'eksctl delete cluster --region=us-west-2 --name=my-demo'

[✖] 等待 CloudFormation 堆栈“eksctl-my-demo-cluster”:ResourceNotReady:等待成功资源状态失败

请帮我解决这个问题

【问题讨论】:

    标签: amazon-eks kubernetes-cluster eksctl


    【解决方案1】:

    默认情况下,创建新集群会创建一个新 VPC。由于存在 VPC quota per region,因此尝试创建新 VPC 可能会超出配额限制并导致集群创建失败。有几个解决方案:

    1。请求增加配额

    • 使用以下方法检查您当前的配额(确保使用正确的区域):

      aws service-quotas get-service-quota --service-code vpc --quota-code L-F678F1CE --region us-east-1

    • 响应应如下所示(在本例中,配额为 5):

           "Quota": {
               "ServiceCode": "vpc",
               "ServiceName": "Amazon Virtual Private Cloud (Amazon VPC)",
               "QuotaArn": "arn:aws:servicequotas:us-east-1:570398916848:vpc/L-F678F1CE",
               "QuotaCode": "L-F678F1CE",
               "QuotaName": "VPCs per Region",
               "Value": 5.0,
               "Unit": "None",
               "Adjustable": true,
               "GlobalQuota": false
           }
       }
    
    • 使用以下方式请求增加配额(在这种情况下,请求是针对10):

      aws service-quotas request-service-quota-increase --service-code vpc --quota-code L-F678F1CE --region us-east-1 --desired-value 10

    • 请求获得批准后,您可以创建集群

    2。在现有 VPC 上创建集群

    • 您需要从您的 VPC 中列出至少 2 个子网(至少 2 个公共子网或 2 个私有子网)

    • 例如,对于公共子网,请使用 --vpc-public-subnets

    • 在你的情况下,命令应该是这样的(我已经升级了 k8s 版本)

       eksctl create cluster \
       --version 1.21 \
       --region us-west-2 \
       --node-type t3.medium \
       --nodes 3 \
       --nodes-min 1 \
       --nodes-max 4 \
       --name my-demo \
       --kubeconfig=$HOME/kubeconfigs/demo-cluster-config.yaml \
       --vpc-public-subnets=subnet-0153e560b3129a696,subnet-0cc9c5aebe75083fd```
      
      

    【讨论】:

      【解决方案2】:

      您已联系VPC Quota

      通过使用 AWS Support 创建票证或删除账户中的其他 VPC 来提高配额。

      从这些错误中

      [✖] AWS::EC2::VPC/VPC: CREATE_FAILED – “已达到最大 VPC 数量。(服务:AmazonEC2;状态代码:400;错误代码:VpcLimitExceeded;请求 ID:e1dca3e9-6134- 41d9-92a3-4bf44c0c375f;代理:null)"

      [✖] AWS::EC2::EIP/NATIP: CREATE_FAILED – “已达到最大地址数。(服务:AmazonEC2;状态代码:400;错误代码:AddressLimitExceeded;请求 ID:50f1e75a-404f- 40ff-820a-13a18a3d2f3f;代理:null)"

      [✖] AWS::EC2::InternetGateway/InternetGateway: CREATE_FAILED – “已达到最大 Internet 网关数。(服务:AmazonEC2;状态代码:400;错误代码:InternetGatewayLimitExceeded;请求 ID:e53b2d09-6d4a -4eef-b8ed-b52c1104bb89; 代理:null)"

      【讨论】:

        【解决方案3】:

        我想指出的另一件事是,您正在尝试创建一个版本为 1.14 的集群,即not supported。但是,这不是您遇到的失败的原因; @samtoddler 的回答是正确的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-07-08
          • 2019-11-21
          • 1970-01-01
          • 1970-01-01
          • 2019-07-08
          • 1970-01-01
          • 1970-01-01
          • 2021-03-25
          相关资源
          最近更新 更多