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?
- Con terraform escribiendo desde 0.
- Con terraform haciendo uso del module.
- Con cloudformation.
- 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"
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
Configuración de kubectl
Actualizamos la configuración de kubectl:
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:
kubectl config get-context
Destrucción del cluster EKS
terraform destroy -var="config_key=config.json" -auto-approve
Para eliminar el contexto de tu kubernetes realiza:
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.
Top comments (0)