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
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
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 usandokubectl
.
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
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).
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
- Crear un clúster de AKS.
- Desplegar una aplicación Nginx.
- Configurar el escalado automático.
Solución
-
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
-
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
-
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.
Curso de Azure
Módulo 1: Introducción a Azure
- ¿Qué es Azure?
- Configuración de la cuenta de Azure
- Descripción general del portal de Azure
- Administrador de recursos de Azure
Módulo 2: Servicios principales de Azure
- Máquinas virtuales de Azure
- Servicios de aplicaciones de Azure
- Almacenamiento de Azure
- Redes de Azure
Módulo 3: Bases de datos de Azure
- Base de datos SQL de Azure
- Azure Cosmos DB
- Base de datos de Azure para MySQL
- Base de datos de Azure para PostgreSQL
Módulo 4: Seguridad en Azure
- Gestión de identidad y acceso de Azure
- Centro de seguridad de Azure
- Azure Key Vault
- Protección DDoS de Azure
Módulo 5: Azure DevOps
Módulo 6: Servicios avanzados de Azure
- Servicio de Kubernetes de Azure (AKS)
- Funciones de Azure
- Aplicaciones lógicas de Azure
- Servicios cognitivos de Azure
Módulo 7: Monitoreo y gestión
- Monitor de Azure
- Análisis de registros de Azure
- Información de aplicaciones de Azure
- Automatización de Azure