AWS EKS Parte I: Setup inicial

Nesse artigo mostraremos um 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.

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.

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.

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.

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

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

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.

Linha de comando

Vamos autenticar no cluster utilizando o comando abaixo:

aws eks update-kubeconfig – name “nome-do-cluster” – region “região-criada”

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

kubectl.exe version – short

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

kubectl.exe get nodes

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

kubectl.exe get pods -A

Quer saber como são as próximas partes de configuração?
Leia os artigos abaixo:

Leia também o artigo sobre Subnet customizada para Pods no cluster AWS EKS | Blog GFT Brasil.

Referências

– Provision an EKS Cluster (AWS)