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

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 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 a seguir e os recursos necessários para criar e gerenciar um cluster do Amazon EKS.

  • kubectl: uma ferramenta de linha de comando para trabalhar com clusters do Kubernetes. Este guia requer que você use a versão 1.22 ou superior. Para mais informações, consulte Instalar ou atualizar o kubectl.

  • eksctl – Uma ferramenta de linha de comando para trabalhar com clusters EKS que automatiza várias tarefas individuais. Este guia requer que você use a versão 0.105.0 ou superior. Para mais informações, consulte Instalar ou atualizar o eksctl.

  • Permissões obrigatórias do IAM: o principal de segurança do IAM que você está usando deve ter permissões para trabalhar com funções do Amazon EKS IAM e funções vinculadas ao serviço, o AWS CloudFormation e uma VPC com recursos relacionados. Para obter mais informações, consulte Ações, recursos e chaves de condição do Amazon Elastic Container Service for Kubernetes e Uso de funções vinculadas a serviço no Guia do usuário do IAM. Você deve concluir todas as etapas deste manual como o mesmo usuário.

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 obter mais informações, consulte Criar um cluster do Amazon EKS e Nós do Amazon EKS. 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 Nós do Amazon EKS. 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. Um nome de cluster só pode conter caracteres alfanuméricos (sensíveis a maiúsculas e minúsculas) e hifens. Ele deve começar com um caractere alfabético e não pode ter mais de 128 caracteres. 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

    O exemplo de saída é o seguinte.

    Fargate – Linux
    NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME fargate-ip-192-168-141-147.region-code.compute.internal Ready <none> 8m3s v1.22.10-eks-7c9bda 192.168.141.147 <none> Amazon Linux 2 5.4.156-83.273.amzn2.x86_64 containerd://1.3.2 fargate-ip-192-168-164-53.region-code.compute.internal Ready <none> 7m30s v1.22.10-eks-7c9bda 192.168.164.53 <none> Amazon Linux 2 5.4.156-83.273.amzn2.x86_64 containerd://1.3.2
    Managed nodes – Linux
    NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME ip-192-168-12-49.region-code.compute.internal Ready <none> 6m7s v1.22.10-eks-d1db3c 192.168.12.49 52.35.116.65 Amazon Linux 2 5.4.156-83.273.amzn2.x86_64 docker://20.10.7 ip-192-168-72-129.region-code.compute.internal Ready <none> 6m4s v1.22.10-eks-d1db3c 192.168.72.129 44.242.140.21 Amazon Linux 2 5.4.156-83.273.amzn2.x86_64 docker://20.10.7

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

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

    kubectl get pods -A -o wide

    O exemplo de saída é o seguinte.

    Fargate – Linux
    NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system coredns-69dfb8f894-9z95l 1/1 Running 0 18m 192.168.164.53 fargate-ip-192-168-164-53.region-code.compute.internal <none> <none> kube-system coredns-69dfb8f894-c8v66 1/1 Running 0 18m 192.168.141.147 fargate-ip-192-168-141-147.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-6ctpm 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.region-code.compute.internal <none> <none> kube-system aws-node-cbntg 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.region-code.compute.internal <none> <none> kube-system coredns-559b5db75d-26t47 1/1 Running 0 14m 192.168.78.81 ip-192-168-72-129.region-code.compute.internal <none> <none> kube-system coredns-559b5db75d-9rvnk 1/1 Running 0 14m 192.168.29.248 ip-192-168-12-49.region-code.compute.internal <none> <none> kube-system kube-proxy-l8pbd 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.region-code.compute.internal <none> <none> kube-system kube-proxy-zh85h 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.region-code.compute.internal <none> <none>

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

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 Next steps (Próximas etapas).

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

Next steps (Próximas etapas)

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