EKS, EKSCTL e AZ
Quando você volta, meia hora depois(foi mal, me atrasei olhando o Instagram), você é recebido com a seguinte mensagem:
Mas o que aconteceu?
Entendendo o problema
A AWS é um proofor bem grande, mas algumas regiões são extremamente disputadas. us-east-1은 AWS의 주요 리전(lembra o que acontece quando ela "cai"?) 및 muita gente usa입니다. 따라서 가용 영역은 "절대"로 간주됩니다.
A mensagem de erro está bem clara ali:
Cannot create cluster 'devsres-lab' 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
É parecido comeste erro aqui que pode acontecer ao tentar subir uma máquina EC2 em certas AZs saturadas. Esse erro acima acontecia bastante aqui em São Paulo com sa-east-1b - ela passou "fechada"por um tempo!
당신은 프로그램을 가지고 있습니다!
Embora는 AWS를 보호하기 위해 EKS 클러스터에 대한 명령을 포함하는 프로그래밍 패드(공식 문서 목록 포함)를 포함하고 있습니다.
어떤 문제가 명확하지 않은지 확인하려면 AZ의 "시간"을 템포에 따라 결정해야 합니까?
É porque não tem solução.
Uma coisa é ter capacidade para criar VMs, outra coisa é capacidade para criar clusters EKS.
no mesmo dia em que fui contemplado com o erro da imagem acima, eu consegui criar máquinas virtuais do mesmo tamanho (ou maiores!) em us-east-1e, a AZ "cheia":
Existem técnicas para saber se você consegue criar uma VM em uma AZ - a melhor maneira é verificar se há oferta de reserved-instances:
# Ps: código copy/pastable!
$ export TYPE=t3.medium
$ aws ec2 describe-reserved-instances-offerings \
--filters 'Name=scope,Values=Availability Zone' \
--no-include-marketplace --instance-type $TYPE |
jq -r '.ReservedInstancesOfferings[].AvailabilityZone' |
sort | uniq
us-east-1a
us-east-1b
us-east-1c
us-east-1d
us-east-1e
us-east-1f
현재 AZ가 estão aí인 것처럼 확인하고 que já sabemos를 확인합니다.
$ export TYPE=m5.large
$ aws ec2 describe-reserved-instances-offerings \
--filters 'Name=scope,Values=Availability Zone' \
--no-include-marketplace --instance-type $TYPE |
jq -r '.ReservedInstancesOfferings[].AvailabilityZone' |
sort | uniq
us-east-1a
us-east-1b
us-east-1c
us-east-1d
us-east-1f
Ops, aparentemente us-east-1e está fora desse tipo aí!
EKS 또는 클러스터 클러스터에서 AZ를 지원하는 세이버를 사용할 수 있습니다. 이제 우리는 API를 사용하지 않고 API를 사용하여 정보를 제공할 수 있도록 eksctl을 실행할 수 없습니다.
Você literalmente tem quebrar a cara, levar o erro e "rolar os dados de novo", torcendo para o que o eksctl escolha melhor na próxima vez.
...그렇지 않아!
Especificando를 AZ로
AZ의 문제는 AZ의 "보아스"로 구체적이고 구체적으로 다음과 같이 설명합니다.
$ export CLUSTER=devsres-lab
$ eksctl create cluster
--name "$CLUSTER" \
--vpc-nat-mode Disable \
--zones us-east-1a,us-east-1b \
--nodegroup-name ng1 \
--instance-types t3.medium \
--nodes-min 0 \
--nodes-max 5 \
--nodes 2
$ cat
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: devsres-lab
region: us-east-1
# Avaiability zones pode ser:
# Um top level object
availabilityZones:
- us-east-1a
- us-east-1d
# Um atributo do NodeGroup
nodeGroups:
- name: regular
instanceType: t3.medium
desiredCapacity: 2
volumeSize: 80
availabilityZones:
- us-east-1a
- us-east-1d
...
Mas atenção: o que resolve o que problema da criação do cluster é especificar a diretiva como top level object! Especificar onde o eksctl pode criar NodeGroups ainda deixa ele escolher AZs livremente!
우마 큐리오시다데
전통적인 방식으로, 가용 영역에서 VPC를 선택하는 것은 다음과 같습니다.
Isso é descrito na documentação aqui .
Mas de tanto esse erro aborrecer as pessoas, já que não é possível resolver o problema de maneira definitiva, eles optaram por mudar o comportamento padrão do eksctl para us-east-1 apenas, usando duas em vez de três!
Tem literalmente um if no código que testa isso!
그래서!
Qualquer coisa, nos vemos ou no Twitch !
Reference
이 문제에 관하여(EKS, EKSCTL e AZ), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/eks-eksctl-e-azs-51c9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)