DEV Community

Rodrigo Fernandes
Rodrigo Fernandes

Posted on • Updated on

AWS EKS - Parte I - Setup inicial

Image description

Objetivo geral:

Setup completo de um cluster Kubernetes utilizando AWS EKS e Terraform seguindo as melhores práticas e documentações oficias. Demonstração de atualizações de aplicações e demais recursos.

Objetivo da parte I:

Setup inicial de um cluster Kubernetes utilizando AWS EKS e Terraform seguindo as melhores práticas e documentações oficias.

Avisos importantes

A configuração do cluster é exclusiva para laboratório e testes.

Pré requisitos

Para o setup do cluster serão necessários os itens abaixo:

  • Conta da AWS
  • AWS CLI v2.7.0/v1.24.0 ou mais recente
  • kubectl v1.24.0 ou mais recente

O que será criado

Segue abaixo alguns recursos que serão criados:

  • Auto Scaling
  • Security Groups
  • IAM Roles
  • IAM Policies
  • Cluster EKS
  • EC2

Download do repositório

Vamos utilizar o repositório oficial da Hashicorp para EKS.
Faça o download do repositório utilizando o comando abaixo:

git clone https://github.com/hashicorp/learn-terraform-provision-eks-cluster

Entendendo o repositório

Após efetuar o download do repositório, acesse a diretório learn-terraform-provision-eks-cluster, todos os arquivos necessários estão aqui.

Image description

Abaixo algumas informações sobre os arquivos mais importantes.

  • terraform.tf
    Configura as versões do Terraform e dos provedores usados ​​pela configuração.

  • variables.tf
    Configura a região da AWS aonde será criado o cluster EKS

  • vpc.tf
    Provisiona uma VPC, sub-redes e AZ´s.

  • main.tf
    Provisiona AWS EKS e outros recursos necessários.

Para mais detalhes sobre demais arquivos clique aqui e acesse a documentação oficial.

Agora que "os trem" estão mais claros, Let's go to work!

Configurações iniciais

Antes de começar o setup, alguns ajustes são necessários no código.

No arquivo variables.tf, vamos definir a região na variável Default. No nosso caso, vamos utilizar a região us-east-1.

Image description

No arquivo main.tf, vamos definir a versão do cluster EKS na variável cluster_version. No nosso caso vamos utilizar a versão 1.24.

Image description

Sintam-se a vontade para alterar quaisquer outras variáveis.

Setup do cluster

Vamos iniciar os módulos do Terraform com o comando abaixo:

terraform init

Vamos executar o Plan e o Apply para iniciar o setup do cluster com o comando abaixo:

terraform plan && terraform apply -auto-approve

Image description

O tempo do setup é em média de 15 min a 20 min. Aguarde até a conclusão.

Image description

No output final temos as informações do nome do cluster, endpoint, região e security group.

Validando a instalação

Vamos validar de 2 formas no cluster, utilizando a Console de gerenciamento da AWS e pela linha de comando.

Console de gerenciamento da AWS

Acesse a Console de gerenciamento da AWS, pesquise pelo serviço AWS EKS, localize o cluster que acabamos de criar e confirme o status e a versão do cluster.

Image description

Linha de comando

Vamos autenticar no cluster utilizando o comando abaixo:

aws eks update-kubeconfig --name "nome-do-cluster" --region "região-criada"

Image description

Para verificar a versão do cluster instalada, utilize o comando abaixo:

kubectl.exe version --short

Image description

Para verificar as EC2 que estão nos nodes groups utilize o comando abaixo:

kubectl.exe get nodes

Image description

Para verificar os pods em execução utilize o comando abaixo:

kubectl.exe get pods -A

Image description

Próximas partes

Referências

Top comments (0)