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.
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 EKSvpc.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
.
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
Próximas partes
- AWS EKS - Parte II - Habilitando logs do Control Plane
- AWS EKS - Parte III - Restringindo acesso ao cluster
- AWS EKS - Parte IV - Configurando Add-ons gerenciados (em construção)
- AWS EKS - Parte V - Deploy e atualização de uma app (em construção)
Referências
Top comments (0)