As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Criar e gerenciar clusters
Este tópico aborda como criar e excluir clusters EKS usando o Eksctl. Você pode criar clusters com um comando da CLI ou criando um arquivo YAML de configuração de cluster.
Criação de um cluster simples
Crie um cluster simples com o seguinte comando:
eksctl create cluster
Isso criará um cluster EKS em sua região padrão (conforme especificado pela configuração do AWS CLI) com um grupo de nós gerenciado contendo dois nós m5.large.
O eksctl agora cria um grupo de nós gerenciado por padrão quando um arquivo de configuração não é usado. Para criar um grupo de nós autogerenciado, passe --managed=false
para ou. eksctl create cluster
eksctl create nodegroup
Considerações
-
Ao criar clusters em
us-east-1
, você pode encontrar umUnsupportedAvailabilityZoneException
. Se isso acontecer, copie as zonas sugeridas e passe a--zones
bandeira, por exemplo:eksctl create cluster --region=us-east-1 --zones=us-east-1a,us-east-1b,us-east-1d
. Esse problema pode ocorrer em outras regiões, mas é menos comum. Na maioria dos casos, você não precisará usar a--zone
bandeira.
Crie um cluster usando o arquivo de configuração
Você pode criar um cluster usando um arquivo de configuração em vez de sinalizadores.
Primeiro, crie cluster.yaml
o arquivo:
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: basic-cluster region: eu-north-1 nodeGroups: - name: ng-1 instanceType: m5.large desiredCapacity: 10 volumeSize: 80 ssh: allow: true # will use ~/.ssh/id_rsa.pub as the default ssh key - name: ng-2 instanceType: m5.xlarge desiredCapacity: 2 volumeSize: 100 ssh: publicKeyPath: ~/.ssh/ec2_id_rsa.pub
Em seguida, execute este comando:
eksctl create cluster -f cluster.yaml
Isso criará um cluster conforme descrito.
Se precisar usar uma VPC existente, você pode usar um arquivo de configuração como este:
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: cluster-in-existing-vpc region: eu-north-1 vpc: subnets: private: eu-north-1a: { id: subnet-0ff156e0c4a6d300c } eu-north-1b: { id: subnet-0549cdab573695c03 } eu-north-1c: { id: subnet-0426fb4a607393184 } nodeGroups: - name: ng-1-workers labels: { role: workers } instanceType: m5.xlarge desiredCapacity: 10 privateNetworking: true - name: ng-2-builders labels: { role: builders } instanceType: m5.2xlarge desiredCapacity: 2 privateNetworking: true iam: withAddonPolicies: imageBuilder: true
O nome do cluster ou do grupo de nós deve conter somente caracteres alfanuméricos (com distinção entre maiúsculas e minúsculas) e hífens. Ele deve começar com um caractere alfabético e não pode exceder 128 caracteres, ou você receberá um erro de validação. Para obter mais informações, consulte Criar uma pilha a partir do CloudFormation console no guia do usuário do AWS CLoud Formation.
Atualize o kubeconfig para o novo cluster
Depois que o cluster for criado, a configuração apropriada do kubernetes será adicionada ao seu arquivo kubeconfig. Esse é o arquivo que você configurou na variável de ambiente KUBECONFIG
ou ~/.kube/config
por padrão. O caminho para o arquivo kubeconfig pode ser substituído usando o sinalizador. --kubeconfig
Outros sinalizadores que podem alterar a forma como o arquivo kubeconfig é gravado:
sinalizador | type | use | valor padrão |
---|---|---|---|
--kubeconfig |
string |
caminho para escrever kubeconfig (incompatível com --auto-kubeconfig) |
$KUBECONFIG ou ~/.kube/config |
--set-kubeconfig-context |
bool |
se verdadeiro, o contexto atual será definido no kubeconfig; se um contexto já estiver definido, ele será sobrescrito |
true |
--configuração automática do kube |
bool |
salve o arquivo kubeconfig pelo nome do cluster |
true |
--write-kubeconfig |
bool |
alternar a gravação do kubeconfig |
true |
Excluir cluster
Para excluir esse cluster, execute:
eksctl delete cluster -f cluster.yaml
Atenção
Use o --wait
sinalizador com operações de exclusão para garantir que os erros de exclusão sejam reportados corretamente.
Sem o --wait
sinalizador, o eksctl emitirá apenas uma operação de exclusão na CloudFormation pilha do cluster e não aguardará sua exclusão. Em alguns casos, os recursos da AWS que usam o cluster ou sua VPC podem fazer com que a exclusão do cluster falhe. Se sua exclusão falhar ou você esquecer o sinalizador de espera, talvez seja necessário acessar a CloudFormation GUI e excluir as pilhas eks de lá.
Atenção
As políticas de PDB podem bloquear a remoção de nós durante a exclusão do cluster.
Ao excluir um cluster com grupos de nós, as políticas do Pod Disruption Budget (PDB) podem impedir que os nós sejam removidos com sucesso. Por exemplo, os clusters aws-ebs-csi-driver
instalados normalmente têm dois pods com uma política de PDB que permite que apenas um pod fique indisponível por vez, tornando o outro pod impossível de ser removido durante a exclusão. Para excluir com êxito o cluster nesses cenários, use o disable-nodegroup-eviction
sinalizador para ignorar as verificações de política do PDB:
eksctl delete cluster -f cluster.yaml --disable-nodegroup-eviction
Consulte o examples/
Corrida a seco
O recurso dry-run permite gerar um ClusterConfig arquivo que ignora a criação do cluster e gera um ClusterConfig arquivo que representa as opções CLI fornecidas e contém os valores padrão definidos por eksctl.
Mais informações podem ser encontradas na página Dry Run.