Criar e gerenciar clusters - Guia do usuário do Eksctl

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 emus-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/diretório no GitHub repositório eksctl para ver mais exemplos de arquivos de configuração.

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.