DEV Community

Guillermo Garcia
Guillermo Garcia

Posted on • Originally published at ahioros.info on

AWS Creación de un cluster EKS con terraform

Introducción

Ya hace un tiempo enseñé cómo instalar localstack para que puedas probar terraform. Bueno ahora voy a enseñarte una de las maneras de como crear un cluster de kubernetes (EKS) en AWS.

¿Cuántas maneras de crear un cluster de kubernetes (EKS) en AWS hay?

  1. Con terraform escribiendo desde 0.
  2. Con terraform haciendo uso del module.
  3. Con cloudformation.
  4. Crear un cluster de kubernetes (EKS) en AWS con eksctl (esta al final es un wrapper y hace uso de cloudformation).

Nosotros vamos a realizar la primera configuración.

Puedes ver el video aquí:

No te voy a decir todas las ventajas que tiene hacerlo con terraform (que para eso ya debes de saberlas) solo diré que no me gusta tanto hacerlos con cloudformation por que "tarda" bastante tiempo.

Nota: más adelante vamos a hacer el pipeline CI/CD para automatizar el deploy e ir agregándo más características, así como ir poniéndo "presentable" el proyecto.

Crear un cluster de kubernetes (EKS) en AWS con terraform

En este ejemplo voy a enseñar cómo usar terraform para crear un cluster de kubernetes (EKS) en AWS.

Advertencia: el cluster queda expuesto para poder acceder desde internet, esto no es seguro pero lo hago así por que destruyo el ambiente enseguida, lo correcto es crear una instancia que tenga acceso (jump box/bastión).

Pre-requisitos

Como este proyecto es "bastante código" lo he puesto a disposición en mi github, lo puedes descargar de aquí estará con el tag 1.0.

El diagrama es este:

Configuración

Abre y edita el archivo config.json y cambia los valores de la configuración según tu necesidad.

Despliegue

Realiza el deploy de tu cluster de kubernetes (EKS) con terraform.

terraform init
bash
terraform apply -var="config_key=config.json"
Enter fullscreen mode Exit fullscreen mode

Tocará esperar alrededor de 7 minutos, y el cluster de kubernetes (EKS) estará listo para ser usado.

Test del cluster EKS

Podemos ejecutar el siguiente comando una vez haya terminado y aunque nos sirve, es engorroso estar usando el argumento kubeconfig (ya sé que puedes crear un alias) en el siguiente apartado te digo el tip para actualizar tu kubectl con tu nuevo cluster.

kubectl --kubeconfig ./template/kubeconfig.yaml get nodes
Enter fullscreen mode Exit fullscreen mode

Configuración de kubectl

Actualizamos la configuración de kubectl:

aws eks update-kubeconfig --name eks-cluster --region us-east-1
Enter fullscreen mode Exit fullscreen mode

Recuerda cambiar --name y --region por el nombre y la region de tu cluster de kubernetes (EKS).

Aunque automáticamente debe tomar el nuevo contexto puedes verificarlo con:

kubectl config get-context
Enter fullscreen mode Exit fullscreen mode

Destrucción del cluster EKS

terraform destroy -var="config_key=config.json" -auto-approve
Enter fullscreen mode Exit fullscreen mode

Para eliminar el contexto de tu kubernetes realiza:

kubectl config delete-context arn:aws:eks:laregion:algúnnúmero:cluster/eks-cluster
Enter fullscreen mode Exit fullscreen mode

Nota: en futuros post haremos la configuración del github actions para automatizar el deploy.

Top comments (0)