Closed
Description
Description
Currently there are two issues that users can run into regarding availability zones:
- EKS is not available in all availability zones within a supported region.
- Certain instance types are not available in all availability zones within a supported region.
Additional context
- https://www.reddit.com/r/aws/comments/9oy2iy/your_requested_instance_type_m5large_is_not/
- UnsupportedAvailabilityZoneException: lack of capacity to support cluster eksctl-io/eksctl#118
- Avoid starting in bad availability zone for us-east-1 eksctl-io/eksctl#905
Example error message
[ℹ] eksctl version 0.8.0
[ℹ] using region us-east-1
[ℹ] setting availability zones to [us-east-1e us-east-1c]
[ℹ] subnets for us-east-1e - public:192.168.0.0/19 private:192.168.64.0/19
[ℹ] subnets for us-east-1c - public:192.168.32.0/19 private:192.168.96.0/19
[ℹ] nodegroup "ng-cortex-operator" will use "ami-087a82f6b78a07557" [AmazonLinux2/1.14]
[ℹ] nodegroup "ng-cortex-worker" will use "ami-087a82f6b78a07557" [AmazonLinux2/1.14]
[ℹ] using Kubernetes version 1.14
[ℹ] creating EKS cluster "cortex2" in "us-east-1" region
[ℹ] 2 nodegroups (ng-cortex-operator, ng-cortex-worker) were included (based on the include/exclude rules)
[ℹ] will create a CloudFormation stack for cluster itself and 2 nodegroup stack(s)
[ℹ] if you encounter any issues, check CloudFormation console or try 'eksctl utils describe-stacks --region=us-east-1 --cluster=cortex2'
[ℹ] CloudWatch logging will not be enabled for cluster "cortex2" in "us-east-1"
[ℹ] you can enable it with 'eksctl utils update-cluster-logging --region=us-east-1 --cluster=cortex2'
[ℹ] Kubernetes API endpoint access will use default of {publicAccess=true, privateAccess=false} for cluster "cortex2" in "us-east-1"
[ℹ] 2 sequential tasks: { create cluster control plane "cortex2", 2 parallel sub-tasks: { create nodegroup "ng-cortex-operator", create nodegroup "ng-cortex-worker" } }
[ℹ] building cluster stack "eksctl-cortex2-cluster"
[ℹ] deploying stack "eksctl-cortex2-cluster"
[✖] unexpected status "ROLLBACK_IN_PROGRESS" while waiting for CloudFormation stack "eksctl-cortex2-cluster"
[ℹ] fetching stack events in attempt to troubleshoot the root cause of the failure
[✖] AWS::EC2::SubnetRouteTableAssociation/RouteTableAssociationPublicUSEAST1E: CREATE_FAILED – "Resource creation cancelled"
[✖] AWS::EC2::SubnetRouteTableAssociation/RouteTableAssociationPublicUSEAST1C: CREATE_FAILED – "Resource creation cancelled"
[✖] AWS::EC2::SubnetRouteTableAssociation/RouteTableAssociationPrivateUSEAST1E: CREATE_FAILED – "Resource creation cancelled"
[✖] AWS::EC2::SubnetRouteTableAssociation/RouteTableAssociationPrivateUSEAST1C: CREATE_FAILED – "Resource creation cancelled"
[✖] AWS::EC2::NatGateway/NATGateway: CREATE_FAILED – "Resource creation cancelled"
[✖] AWS::EKS::Cluster/ControlPlane: CREATE_FAILED – "Cannot create cluster 'cortex2' because us-east-1e, the targeted availability zone, does not currently have sufficient capacity to support the cluster. Retry and choose from these availability zones: us-east-1a, us-east-1b, us-east-1c, us-east-1d, us-east-1f (Service: AmazonEKS; Status Code: 400; Error Code: UnsupportedAvailabilityZoneException; Request ID: 9783591e-a9f4-4511-b142-fcd8ba0f08a7)"
[ℹ] 1 error(s) occurred and cluster hasn't been created properly, you may wish to check CloudFormation console
[ℹ] to cleanup resources, run 'eksctl delete cluster --region=us-east-1 --name=cortex2'
[✖] waiting for CloudFormation stack "eksctl-cortex2-cluster" to reach "CREATE_COMPLETE" status: ResourceNotReady: failed waiting for successful resource state
[✖] failed to create cluster "cortex2"