Introducción a Kubernetes Engine

Google Kubernetes Engine (GKE) es un servicio de administración de clústeres de Kubernetes totalmente administrado que te permite ejecutar aplicaciones en contenedores en la infraestructura de Google Cloud. Kubernetes es un sistema de orquestación de contenedores de código abierto que automatiza la implementación, el escalado y la administración de aplicaciones en contenedores.

Objetivos del Módulo

  • Comprender qué es Google Kubernetes Engine (GKE).
  • Aprender a crear y gestionar clústeres de Kubernetes en GKE.
  • Desplegar aplicaciones en un clúster de GKE.
  • Configurar el escalado automático y la actualización continua.

Conceptos Clave

  1. Clúster de Kubernetes: Un conjunto de máquinas (nodos) que ejecutan aplicaciones en contenedores gestionadas por Kubernetes.
  2. Nodo: Una máquina virtual en el clúster de Kubernetes.
  3. Pod: La unidad más pequeña y simple en el modelo de objetos de Kubernetes, que puede contener uno o más contenedores.
  4. Deployment: Un objeto de Kubernetes que gestiona un conjunto de réplicas de pods.
  5. Service: Un objeto de Kubernetes que define una política para acceder a un conjunto lógico de pods.

Configuración de un Clúster de GKE

Paso 1: Crear un Clúster de GKE

  1. Accede a la consola de GCP: Ve a la Consola de Google Cloud.
  2. Navega a Kubernetes Engine: En el menú de navegación, selecciona "Kubernetes Engine" y luego "Clústeres".
  3. Crear Clúster: Haz clic en "Crear clúster".
  4. Configura el Clúster:
    • Nombre del Clúster: Asigna un nombre a tu clúster.
    • Zona: Selecciona la zona donde deseas desplegar tu clúster.
    • Tipo de Máquina: Selecciona el tipo de máquina para los nodos.
    • Número de Nodos: Especifica el número de nodos en el clúster.
  5. Crear: Haz clic en "Crear" para iniciar la creación del clúster.

Paso 2: Configurar kubectl

kubectl es la herramienta de línea de comandos para interactuar con Kubernetes.

  1. Instalar kubectl: Si no lo tienes instalado, sigue las instrucciones en la documentación oficial.
  2. Configurar kubectl para GKE:
    gcloud container clusters get-credentials [CLUSTER_NAME] --zone [ZONE] --project [PROJECT_ID]
    
    Reemplaza [CLUSTER_NAME], [ZONE] y [PROJECT_ID] con los valores correspondientes.

Desplegar una Aplicación en GKE

Paso 1: Crear un Deployment

Un Deployment gestiona un conjunto de réplicas de pods.

  1. Archivo de configuración YAML: Crea un archivo deployment.yaml con el siguiente contenido:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: hello-world
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: hello-world
      template:
        metadata:
          labels:
            app: hello-world
        spec:
          containers:
          - name: hello-world
            image: gcr.io/google-samples/hello-app:1.0
            ports:
            - containerPort: 8080
    
  2. Aplicar el Deployment:
    kubectl apply -f deployment.yaml
    

Paso 2: Exponer el Deployment como un Servicio

  1. Archivo de configuración YAML para el Servicio: Crea un archivo service.yaml con el siguiente contenido:
    apiVersion: v1
    kind: Service
    metadata:
      name: hello-world-service
    spec:
      type: LoadBalancer
      selector:
        app: hello-world
      ports:
        - protocol: TCP
          port: 80
          targetPort: 8080
    
  2. Aplicar el Servicio:
    kubectl apply -f service.yaml
    

Verificar el Despliegue

  1. Obtener la IP del Servicio:
    kubectl get services
    
  2. Acceder a la Aplicación: Abre un navegador web y accede a la IP externa del servicio.

Escalado Automático y Actualización Continua

Escalado Automático

  1. Habilitar el escalado automático:
    kubectl autoscale deployment hello-world --cpu-percent=50 --min=1 --max=10
    

Actualización Continua

  1. Actualizar la imagen del contenedor:
    kubectl set image deployment/hello-world hello-world=gcr.io/google-samples/hello-app:2.0
    

Ejercicio Práctico

Ejercicio: Desplegar una Aplicación en GKE

  1. Crear un Clúster de GKE: Sigue los pasos mencionados anteriormente.
  2. Configurar kubectl: Configura kubectl para interactuar con tu clúster.
  3. Desplegar una Aplicación: Crea y aplica los archivos deployment.yaml y service.yaml.
  4. Escalar la Aplicación: Habilita el escalado automático.
  5. Actualizar la Aplicación: Realiza una actualización continua de la imagen del contenedor.

Solución

  1. Crear un Clúster de GKE: Ya cubierto en la sección anterior.
  2. Configurar kubectl: Ya cubierto en la sección anterior.
  3. Desplegar una Aplicación:
    kubectl apply -f deployment.yaml
    kubectl apply -f service.yaml
    
  4. Escalar la Aplicación:
    kubectl autoscale deployment hello-world --cpu-percent=50 --min=1 --max=10
    
  5. Actualizar la Aplicación:
    kubectl set image deployment/hello-world hello-world=gcr.io/google-samples/hello-app:2.0
    

Conclusión

En este módulo, hemos aprendido a crear y gestionar clústeres de Kubernetes en Google Kubernetes Engine (GKE). Hemos desplegado una aplicación, configurado el escalado automático y realizado una actualización continua. Estos conocimientos te permitirán gestionar aplicaciones en contenedores de manera eficiente en la infraestructura de Google Cloud.

En el próximo módulo, exploraremos las redes y la seguridad en GCP, donde aprenderemos a configurar redes VPC, balanceo de carga, y más.

© Copyright 2024. Todos los derechos reservados