Conceitos básicos do Amazon EKS: eksctl - Amazon EKS

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Role até o final desta página e selecione Editar esta página no GitHub. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

Conceitos básicos do Amazon EKS: eksctl

Este guia ajuda você a criar todos os recursos necessários para começar a usar o Amazon Elastic Kubernetes Service (Amazon EKS) com o eksctl, um utilitário de linha de comando simples para criar e gerenciar clusters do Kubernetes no Amazon EKS. No final deste tutorial, você terá um cluster do Amazon EKS em execução, no qual poderá implantar as aplicações.

Os procedimentos neste guia criam automaticamente vários recursos que você precisa criar manualmente ao criar o cluster usando o comando AWS Management Console. Se preferir criar manualmente a maioria dos recursos e entender melhor como eles interagem entre si, use o AWS Management Console para criar os clusters e a computação. Para ter mais informações, consulte Conceitos básicos do Amazon EKS: AWS Management Console e AWS CLI.

Pré-requisitos

Antes de iniciar este tutorial, você deve instalar e configurar as ferramentas do kubectl, eksctl e AWS CLI, conforme descrito em Configurar para usar o Amazon EKS.

Etapa 1: Criar o cluster e nós do Amazon EKS

Importante

Para começar da forma mais simples e rápida possível, este tópico inclui etapas para criar um cluster e nós com configurações padrão. Antes de criar um cluster e nós para uso em produção, recomendamos que você se familiarize com todas as configurações e implante um cluster e nós com as configurações que atendam aos seus requisitos. Para ter mais informações, consulte Criar um cluster do Amazon EKS. e Gerenciar recursos computacionais usando nós. Algumas configurações poderão ser habilitadas apenas durante a criação do cluster e dos nós.

Você pode criar um cluster com um dos seguintes tipos de nós. Para saber mais sobre cada tipo, consulte Gerenciar recursos computacionais usando nós. Depois que o cluster for implantado, você pode adicionar outros tipos de nós.

  • Fargate: Linux: selecione este tipo de nó se quiser executar aplicações do Linux no AWS Fargate. O Fargate é um mecanismo de computação com tecnologia sem servidor que permite a implantação de Pods do Kubernetes sem gerenciar instâncias do Amazon EC2.

  • Nós gerenciados: Linux: selecione este tipo de nó se quiser executar aplicações do Amazon Linux em instâncias do Amazon EC2. Embora não abordado neste guia, você também pode adicionar nós autogerenciados do Windows e do Bottlerocket ao cluster.

Crie o cluster do Amazon EKS com o comando a seguir. Você pode substituir my-cluster por seus próprios valores. O nome só pode conter caracteres alfanuméricos (sensíveis a maiúsculas e minúsculas) e hifens. Ele deve começar com um caractere alfanumérico e não pode ter mais de 100 caracteres. O nome deve ser exclusivo dentro da Região da AWS e da Conta da AWS na qual você está criando o cluster. Substitua region-code por qualquer Região da AWS compatível com o Amazon EKS. Para obter uma lista das Regiões da AWS, consulte Endpoints e cotas do Amazon EKS no guia Referência geral da AWS.

Fargate – Linux
eksctl create cluster --name my-cluster --region region-code --fargate
Managed nodes – Linux
eksctl create cluster --name my-cluster --region region-code

A criação do cluster leva muitos minutos. Durante a criação, você verá várias linhas de saída. A última linha do resultado é semelhante ao exemplo de linha a seguir.

[...]
[✓]  EKS cluster "my-cluster" in "region-code" region is ready

eksctl criou um arquivo kubectl config em ~/.kube ou adicionou a configuração do novo cluster dentro de um arquivo config em ~/.kube no seu computador.

Após a criação do cluster ser concluída, exiba a pilha do AWS CloudFormation chamada eksctl-my-cluster-cluster no console do AWS CloudFormation, em https://console.aws.amazon.com/cloudformation para ver todos os recursos que você criou.

Etapa 2: Visualizar recursos do Kubernetes

  1. Exiba os nós de cluster.

    kubectl get nodes -o wide

    Veja um exemplo de saída abaixo.

    Fargate – Linux
    NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME fargate-ip-192-0-2-0.region-code.compute.internal Ready <none> 8m3s v1.2.3-eks-1234567 192.0.2.0 <none> Amazon Linux 2 1.23.456-789.012.amzn2.x86_64 containerd://1.2.3 fargate-ip-192-0-2-1.region-code.compute.internal Ready <none> 7m30s v1.2.3-eks-1234567 192-0-2-1 <none> Amazon Linux 2 1.23.456-789.012.amzn2.x86_64 containerd://1.2.3
    Managed nodes – Linux
    NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME ip-192-0-2-0.region-code.compute.internal Ready <none> 6m7s v1.2.3-eks-1234567 192.0.2.0 192.0.2.2 Amazon Linux 2 1.23.456-789.012.amzn2.x86_64 containerd://1.2.3 ip-192-0-2-1.region-code.compute.internal Ready <none> 6m4s v1.2.3-eks-1234567 192.0.2.1 192.0.2.3 Amazon Linux 2 1.23.456-789.012.amzn2.x86_64 containerd://1.2.3

    Para obter mais informações sobre o que é visualizado na saída, consulte Visualizar recursos do Kubernetes no AWS Management Console.

  2. Exiba as workloads em execução no cluster.

    kubectl get pods -A -o wide

    Veja um exemplo de saída abaixo.

    Fargate – Linux
    NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system coredns-1234567890-abcde 1/1 Running 0 18m 192.0.2.0 fargate-ip-192-0-2-0.region-code.compute.internal <none> <none> kube-system coredns-1234567890-12345 1/1 Running 0 18m 192.0.2.1 fargate-ip-192-0-2-1.region-code.compute.internal <none> <none>
    Managed nodes – Linux
    NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system aws-node-12345 1/1 Running 0 7m43s 192.0.2.1 ip-192-0-2-1.region-code.compute.internal <none> <none> kube-system aws-node-67890 1/1 Running 0 7m46s 192.0.2.0 ip-192-0-2-0.region-code.compute.internal <none> <none> kube-system coredns-1234567890-abcde 1/1 Running 0 14m 192.0.2.3 ip-192-0-2-3.region-code.compute.internal <none> <none> kube-system coredns-1234567890-12345 1/1 Running 0 14m 192.0.2.4 ip-192-0-2-4.region-code.compute.internal <none> <none> kube-system kube-proxy-12345 1/1 Running 0 7m46s 192.0.2.0 ip-192-0-2-0.region-code.compute.internal <none> <none> kube-system kube-proxy-67890 1/1 Running 0 7m43s 192.0.2.1 ip-192-0-2-1.region-code.compute.internal <none> <none>

    Para obter mais informações sobre o que é visualizado na saída, consulte Visualizar recursos do Kubernetes no AWS Management Console.

Etapa 3: excluir clusters e nós

Após concluir o cluster e os nós criados para este tutorial, faça uma limpeza excluindo o cluster e os nós usando o comando a seguir. Se você quiser realizar outras ações com esse cluster antes de limpá-lo, consulte Próximas etapas.

eksctl delete cluster --name my-cluster --region region-code

Próximas etapas

Os seguintes tópicos de documentação ajudam a estender a funcionalidade do seu cluster: