Introducción a Kubernetes

1

¿Qué es Kubernetes y por qué es importante?

2

Configura un clúster local con Minikube o Kind

3

Arquitectura de Kubernetes: nodos, pods, servicios y componentes clave

4

Introducción a la API de Kubernetes y kubectl

5

Diferencias entre enfoques declarativos e imperativos

Quiz: Introducción a Kubernetes

Objetos y Recursos de Kubernetes

6

Pods, ReplicaSets y Deployments

7

Servicios e Ingress: Exposición de aplicaciones

8

ConfigMaps y Secrets: Gestión de configuraciones y datos sensibles

Quiz: Objetos y Recursos de Kubernetes

Redes y Almacenamiento en Kubernetes

9

Modelo de red de Kubernetes: Comunicación entre pods y servicios

10

Tipos de servicios: ClusterIP, NodePort, LoadBalancer y ExternalName

11

Volúmenes persistentes (PV) y reclamaciones (PVC)

12

DaemonSets y StatefulSets

Quiz: Redes y Almacenamiento en Kubernetes

Cargas de Trabajo y Escalado

13

Despliegue de una aplicación multi-tier en Local

14

Jobs y CronJobs: Tareas únicas y programadas

15

Escalado de aplicaciones: HPA y VPA

16

Escalado de aplicaciones en Kubernetes

Quiz: Cargas de Trabajo y Escalado

Kubernetes en la Nube

17

Introducción a EKS, AKS y GKE

18

Configuración de Kubernetes en EKS (AWS)

19

Configuración de Kubernetes en AKS (Azure) y GKE (Google Cloud)

20

Despliegue del Proyecto en la nube de AWS (EKS)

Quiz: Kubernetes en la Nube

Troubleshooting, Casos de uso y Certificaciones K8s

21

Troubleshooting en Kubernetes

22

Otros casos de uso de Kubernetes

23

Certificaciones profesionales en K8s

24

Despliegue en Kubernetes Finalizado

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Kubernetes

Curso de Kubernetes

Jaggy Castaño

Jaggy Castaño

Configuración de Kubernetes en EKS (AWS)

18/24
Recursos

¿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.

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

🚨 **¡Alerta de Cobro en AWS!** 🚨 ⚠️ **AWS te cobrará al menos 0.10 USD** por el control plane de EKS, **aunque lo borres rápido**. 💸 Si lanzas **nodos EC2**, **balanceadores de carga** o **almacenamiento**, también pueden **generarse cargos adicionales**. 🆓 **Si quieres evitar costos**, usa **GKE gratis** o **Kubernetes local (Minikube, KIND)**. 🚀
### **Configuración de Kubernetes en EKS (AWS)** Elastic Kubernetes Service (EKS) en AWS permite desplegar y gestionar clústeres de Kubernetes de manera sencilla, mientras AWS se encarga de la gestión del plano de control. ### **Prerrequisitos** 1. **Cuenta de AWS**: Una cuenta activa con permisos administrativos. 2. **CLI de AWS instalada**: Configura tu perfil con `aws configure`. 3. **Kubectl instalado**: Para interactuar con el clúster. 4. **Eksctl instalado**: Una herramienta que simplifica la creación de clústeres EKS. 5. **IAM Permisos**: * `eks:CreateCluster` * `eks:CreateNodegroup` * `ec2:CreateVpc` ### **1. Crear un Clúster EKS** #### **Opción 1: Usando** `eksctl` **(Recomendado para simplicidad)** `eksctl` es una herramienta que facilita la configuración de EKS. 1. **Comando para crear el clúster**:eksctl create cluster \\ \--name my-eks-cluster \\ \--region us-west-2 \\ \--nodegroup-name standard-workers \\ \--node-type t3.medium \\ \--nodes 2 \\ \--nodes-min 1 \\ \--nodes-max 3 \\ \--managed * `--name`: Nombre del clúster. * `--region`: Región donde se desplegará. * `--node-type`: Tipo de instancia EC2 para los nodos. * `--nodes`: Número de nodos iniciales. * `--managed`: AWS gestiona los nodos. 2. **Verifica el clúster**:eksctl get cluster #### **Opción 2: Usando la consola de AWS** 1. Ve a **EKS** en la consola de AWS. 2. Haz clic en **"Crear clúster"**. 3. Configura: * Nombre del clúster. * Versión de Kubernetes. * Rol de IAM para EKS (puedes crear uno automáticamente). 4. Configura el VPC y las subredes (puedes usar uno existente o permitir que AWS cree uno). 5. Después de crear el clúster, añade un grupo de nodos desde la consola: * Selecciona tipo de instancias EC2 y número de nodos. ### **2. Configurar el Contexto de Kubectl** Una vez que el clúster esté creado, configura `kubectl` para interactuar con él. 1. **Obtener el archivo kubeconfig**:aws eks update-kubeconfig --region us-west-2 --name my-eks-cluster 2. **Verificar la conexión**:kubectl get nodes ### **3. Desplegar una Aplicación en el Clúster** 1. **Crear un Deployment**:apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: \- name: nginx image: nginx:latest ports: \- containerPort: 80 Guarda este archivo como `nginx-deployment.yaml` y aplícalo:kubectl apply -f nginx-deployment.yaml 2. **Exponer la Aplicación**:apiVersion: v1 kind: Service metadata: name: nginx-service spec: selector: app: nginx ports: \- protocol: TCP port: 80 targetPort: 80 type: LoadBalancer Guarda este archivo como `nginx-service.yaml` y aplícalo:kubectl apply -f nginx-service.yaml 3. **Verificar la Aplicación**: Encuentra la dirección IP del LoadBalancer:kubectl get service nginx-service Abre la IP en tu navegador para acceder a la aplicación. ### **4. Configurar Autoescalado (HPA)** 1. **Habilitar el escalado automático**: * Instala el **Cluster Autoscaler**:kubectl apply -f <https://github.com/kubernetes/autoscaler/releases/latest/download/cluster-autoscaler-autodiscover.yaml> 2. **Habilitar HPA para la aplicación**:kubectl autoscale deployment nginx-deployment --cpu-percent=50 --min=1 --max=5 3. **Verificar HPA**:kubectl get hpa ### **5. Monitoreo con CloudWatch** EKS está integrado con **CloudWatch** para monitorear métricas, logs y alertas: 1. **Habilitar logging**: * Configura el clúster para enviar logs a CloudWatch:eksctl utils update-cluster-logging --enable-types all --region us-west-2 --cluster my-eks-cluster 2. **Visualizar los logs**: * Ve a **CloudWatch Logs** en la consola de AWS y busca los logs de tu clúster. ### **6. Limpieza de Recursos** Para evitar costos innecesarios, elimina los recursos creados al finalizar las pruebas: 1. **Eliminar el clúster con eksctl**:eksctl delete cluster --name my-eks-cluster 2. **Verifica que todos los recursos han sido eliminados**:aws eks list-clusters ### Esta guía te permite configurar un clúster EKS en AWS, desplegar aplicaciones, habilitar escalado automático y monitorear el rendimiento. EKS es ideal para proyectos que requieren alta disponibilidad, escalabilidad y una integración profunda con servicios de AWS.
<https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html>