Introducción

El Servicio de Kubernetes de Azure (AKS) es una solución de orquestación de contenedores completamente administrada que simplifica la implementación, administración y operaciones de Kubernetes. AKS permite a los desarrolladores y administradores de sistemas ejecutar aplicaciones en contenedores sin la necesidad de gestionar la infraestructura subyacente.

Contenidos

¿Qué es Kubernetes?

Kubernetes es una plataforma de código abierto diseñada para automatizar la implementación, el escalado y las operaciones de aplicaciones en contenedores. Proporciona un entorno de administración de contenedores que puede ser utilizado para ejecutar aplicaciones en clústeres de máquinas físicas o virtuales.

Conceptos clave de Kubernetes

  • Pod: La unidad más pequeña y simple en Kubernetes, que puede contener uno o más contenedores.
  • Nodo: Una máquina física o virtual que ejecuta pods.
  • Clúster: Un conjunto de nodos gestionados por Kubernetes.
  • Controlador: Gestiona el estado deseado de los pods.
  • Servicio: Define una política de acceso a los pods.

Ventajas de usar AKS

  • Administración simplificada: AKS gestiona automáticamente la infraestructura de Kubernetes, incluyendo la configuración y el mantenimiento del clúster.
  • Escalabilidad: Permite escalar aplicaciones de manera automática según la demanda.
  • Seguridad: Integración con Azure Active Directory (AAD) para la autenticación y autorización.
  • Integración con otros servicios de Azure: Fácil integración con servicios como Azure DevOps, Azure Monitor y Azure Security Center.

Configuración de un clúster de AKS

Paso 1: Crear un grupo de recursos

az group create --name myResourceGroup --location eastus

Paso 2: Crear un clúster de AKS

az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 1 --enable-addons monitoring --generate-ssh-keys

Paso 3: Conectar al clúster de AKS

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

Explicación del código

  • az group create: Crea un grupo de recursos en Azure.
  • az aks create: Crea un clúster de AKS con un nodo y habilita el monitoreo.
  • az aks get-credentials: Descarga las credenciales del clúster para interactuar con él usando kubectl.

Despliegue de aplicaciones en AKS

Paso 1: Crear un archivo de despliegue

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

Paso 2: Aplicar el despliegue

kubectl apply -f nginx-deployment.yaml

Explicación del archivo YAML

  • apiVersion: Versión de la API de Kubernetes.
  • kind: Tipo de recurso (Deployment).
  • metadata: Información sobre el despliegue.
  • spec: Especificaciones del despliegue, incluyendo el número de réplicas y la plantilla del pod.

Monitoreo y escalado en AKS

Monitoreo

AKS se integra con Azure Monitor para proporcionar métricas y registros detallados. Puedes habilitar el monitoreo durante la creación del clúster o posteriormente.

Escalado automático

AKS soporta el escalado automático de pods y nodos. Puedes configurar el escalado automático de pods mediante un Horizontal Pod Autoscaler (HPA).

kubectl autoscale deployment nginx-deployment --cpu-percent=50 --min=1 --max=10

Explicación del comando

  • kubectl autoscale deployment: Comando para escalar automáticamente un despliegue.
  • --cpu-percent: Umbral de uso de CPU para escalar.
  • --min y --max: Número mínimo y máximo de réplicas.

Ejercicio práctico

Objetivo

Desplegar una aplicación simple en un clúster de AKS y configurar el escalado automático.

Pasos

  1. Crear un clúster de AKS.
  2. Desplegar una aplicación Nginx.
  3. Configurar el escalado automático.

Solución

  1. Crear un clúster de AKS:

    az group create --name myResourceGroup --location eastus
    az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 1 --enable-addons monitoring --generate-ssh-keys
    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Desplegar una aplicación Nginx:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.14.2
            ports:
            - containerPort: 80
    
    kubectl apply -f nginx-deployment.yaml
    
  3. Configurar el escalado automático:

    kubectl autoscale deployment nginx-deployment --cpu-percent=50 --min=1 --max=10
    

Conclusión

En esta sección, hemos aprendido sobre el Servicio de Kubernetes de Azure (AKS), sus ventajas y cómo configurarlo. También hemos desplegado una aplicación simple y configurado el escalado automático. AKS simplifica la administración de Kubernetes y permite a los desarrolladores centrarse en la creación de aplicaciones en lugar de gestionar la infraestructura subyacente.

En el próximo módulo, exploraremos las Funciones de Azure, un servicio que permite ejecutar código sin necesidad de gestionar servidores.

© Copyright 2024. Todos los derechos reservados