## Introducción Ya hace un tiempo enseñé [cómo instalar localstack para que puedas probar terraform](https://www.ahioros.info/2024/05/how-to-install-localstack-with-docker.html). 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í](https://github.com/ahioros/terraform-aws-eks/releases/tag/1.0) 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. ```bash terraform init ``` ```bash terraform apply -var="config_key=config.json" ``` 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. ```bash kubectl --kubeconfig ./template/kubeconfig.yaml get nodes ``` ## Configuración de kubectl Actualizamos la configuración de kubectl: ```bash aws eks update-kubeconfig --name eks-cluster --region us-east-1 ``` 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: ```bash kubectl config get-context ``` ## Destrucción del cluster EKS ```bash terraform destroy -var="config_key=config.json" -auto-approve ``` Para eliminar el contexto de tu kubernetes realiza: ```bash kubectl config delete-context arn:aws:eks:laregion:algúnnúmero:cluster/eks-cluster ``` **Nota:** en futuros post haremos la configuración del github actions para automatizar el deploy.
No hay comentarios.:
Publicar un comentario