Configuración de Kubernetes en EKS (AWS)

Clase 19 de 24Curso de Kubernetes

Resumen

¿Cómo gestionar un clúster de Kubernetes en la nube usando EKSCTL?

¿Te has preguntado cómo llevar tu clúster de Kubernetes de local a la nube? Hoy vamos a descubrir cómo hacerlo con EKSCTL y AWS. Este proceso transforma tu entorno de pruebas en una orquesta lista para producción. A continuación, exploraremos cómo gestionar nuestros recursos en la nube de AWS.

¿Qué es EKSCTL y cómo se instala?

EKSCTL es un comando que te permite gestionar clústeres de Kubernetes directamente desde tu máquina local, utilizando la infraestructura de AWS. Aquí hay algunos pasos esenciales para comenzar:

  1. Requerimientos previos: antes de instalar EKSCTL, necesitas familiarizarte con servicios de AWS como IAM, VPC y EC2.

  2. Instalación: accede a la documentación oficial de EKSCTL buscando "EKSCTL install" en tu navegador. Verás instrucciones para diferentes sistemas operativos. En Mac OS, por ejemplo, se instala a través de Homebrew con los comandos:

    brew tap weaveworks/tap
    brew install weaveworks/tap/eksctl
    
  3. Configuración inicial: una vez instalado, asegúrate de tener tus credenciales de AWS configuradas para validar tu identidad con el siguiente comando:

    aws sts get-caller-identity
    

¿Cómo crear un clúster de Kubernetes en AWS?

La creación de un clúster es un proceso clave donde EKSCTL brilla por su simplicidad. A través de un archivo YAML de configuración, puedes definir aspectos esenciales del clúster, como el tipo de nodos y su cantidad. Aquí está como hacerlo:

  1. Archivo de configuración: utiliza un archivo YAML que define tu clúster, por ejemplo, simple-cluster.yaml:

    apiVersion: eksctl.io/v1alpha5
    kind: ClusterConfig
    metadata:
      name: test-cluster
      region: us-west-2
    nodeGroups:
      - name: worker-nodes
        instanceType: t3.medium
        desiredCapacity: 2
    
  2. Creación del clúster: ejecuta el siguiente comando para crear el clúster con tu archivo de configuración:

    eksctl create cluster -f simple-cluster.yaml
    

    Este proceso puede durar entre 5 a 10 minutos, dependiendo de tu conexión a Internet y los recursos de AWS.

¿Cómo validar el clúster y administrar los recursos?

Una vez creado el clúster, es esencial confirmarlo y empezar a gestionar nuestros recursos:

  1. Validación: una vez finalice la creación, usa el comando kubectl para listar los nodos:

    kubectl get nodes
    

    Esto confirmará que tus nodos están activos y operativos en la nube.

  2. Exponer aplicaciones: puedes desplegar aplicaciones rápidamente y exponerlas a través de servicios de tipo LoadBalancer. Esto se hace mediante el comando:

    kubectl expose pod hello-cloud --type=LoadBalancer --name=my-service
    

    Utiliza el comando kubectl get services para obtener la URL del LoadBalancer.

Cambio de contexto y administración de un ambiente de pruebas

Gestionar entornos con diferentes clústeres puede ser complejo; aquí es donde kubectl config resulta útil:

  1. Cambio de contexto: para cambiar entre ambientes, verifica tus contextos disponibles y cámbialos con:

    kubectl config get-contexts
    kubectl config use-context minikube
    

    Esto es especialmente útil si deseas hacer pruebas localmente sin afectar el clúster en la nube.

  2. Eliminar clústeres: una vez finalices tus pruebas, elimina el clúster para evitar costos innecesarios con el comando:

    eksctl delete cluster --name=test-cluster
    

Conclusión

¡Y ahí lo tienes! EKSCTL no solo simplifica la gestión de clústeres de Kubernetes en AWS, sino que también integra prácticas de DevOps para llevar tus aplicaciones a un entorno productivo confiable. No olvides explorar cómo podrías aplicar estos conocimientos en otros proveedores de nube. Sigue aprendiendo y compartiendo tus experiencias, juntos continuamos creciendo en el mundo del desarrollo de software en la nube.