Configuración de Kubernetes en AKS (Azure)

Clase 18 de 24Curso de Kubernetes

Resumen

El despliegue de aplicaciones en la nube se ha vuelto una habilidad indispensable en el ecosistema DevOps actual. Dominar plataformas como Azure Kubernetes Service (AKS) no solo permite optimizar tus flujos de trabajo, sino que también te posiciona competitivamente en el mercado laboral. Exploraremos paso a paso cómo crear y configurar un clúster de Kubernetes en Azure, una de las soluciones más demandadas por empresas que buscan profesionales en infraestructura cloud.

¿Por qué es importante AKS en el ecosistema de DevOps?

Azure Kubernetes Service es una solución administrada de Kubernetes que simplifica significativamente el despliegue y gestión de aplicaciones contenerizadas. Una de las ventajas más destacables de AKS es su integración nativa con Azure DevOps, permitiendo automatizar completamente el flujo desde desarrollo hasta producción.

Las organizaciones buscan cada vez más profesionales que dominen estas tecnologías porque:

  • Facilitan la implementación de prácticas de integración continua
  • Permiten administrar infraestructura como código
  • Ofrecen escalabilidad y alta disponibilidad de forma nativa
  • Simplifican la gestión de microservicios

Al igual que GCP y AWS, Azure ofrece su propio servicio de Kubernetes, pero con particularidades que lo hacen único en el mercado.

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

Requisitos previos

Antes de comenzar con la creación del clúster, necesitamos:

  • Una cuenta de Azure configurada
  • Azure CLI instalado en nuestra máquina local
  • Kubectl instalado como complemento

Para verificar que tengamos la CLI de Azure correctamente instalada, ejecutamos:

az --version

Si es necesario instalar el complemento de kubectl para Azure, utilizamos:

az aks install-cli

Inicio de sesión y configuración inicial

El primer paso es autenticar nuestra CLI local con Azure:

az login

Este comando abrirá una ventana del navegador donde debemos iniciar sesión con nuestra cuenta de Azure. Una vez autenticados, debemos seleccionar la suscripción con la que queremos trabajar.

Es importante recordar que necesitamos una suscripción activa con método de pago configurado, aunque Azure ofrece una capa gratuita para usuarios nuevos.

Creación del grupo de recursos

En Azure, todos los recursos deben estar asociados a un grupo de recursos, que sirve como contenedor lógico. Para crear uno:

az group create --name K8sCourseAksDemo --location eastus

Este grupo nos permitirá administrar de forma centralizada:

  • La facturación de nuestros servicios
  • Las políticas de seguridad
  • El monitoreo de recursos
  • Las configuraciones compartidas

Creación del clúster de Kubernetes

Ahora podemos crear nuestro clúster de AKS utilizando el grupo de recursos:

az aks create --resource-group K8sCourseAksDemo --name K8sCourseAksDemo \
              --node-count 3 --enable-addons monitoring --generate-ssh-keys \
              --node-vm-size Standard_DS2_v3

Los parámetros clave que debemos entender son:

  • --node-count: especifica cuántos nodos (máquinas virtuales) tendrá nuestro clúster
  • --enable-addons monitoring: activa el monitoreo del clúster
  • --generate-ssh-keys: crea claves SSH para conectarse a los nodos
  • --node-vm-size: define el tipo de máquina virtual a usar

Durante este proceso, podemos enfrentar algunos errores comunes:

  1. Proveedores de servicios no registrados
  2. Tamaños de VM no disponibles en la región seleccionada

Para el primer caso, necesitamos registrar los proveedores necesarios:

az provider register --namespace Microsoft.OperationsManagement
az provider register --namespace Microsoft.ContainerService

Para el segundo caso, debemos especificar un tamaño de VM compatible con nuestra suscripción y región.

¿Cómo conectar kubectl local con nuestro clúster de AKS?

Una vez que el clúster está creado (proceso que puede tomar entre 15-20 minutos), necesitamos configurar kubectl para comunicarse con él:

az aks get-credentials --resource-group K8sCourseAksDemo --name K8sCourseAksDemo

Este comando agrega automáticamente la configuración necesaria a nuestro archivo kubeconfig. Para verificar que tenemos acceso al clúster:

kubectl get nodes

Deberíamos ver tres nodos en estado "Ready". También podemos explorar los componentes del sistema:

kubectl get pods -n kube-system

Esto mostrará componentes esenciales como:

  • CoreDNS para resolución DNS interna
  • Azure CNI para networking
  • Métricas y monitoreo
  • Componentes de almacenamiento (CSI)

Creación de recursos en nuestro clúster

Ya con la conexión establecida, podemos crear recursos como namespaces:

kubectl create namespace platzi-aks

Y desde aquí podríamos comenzar a desplegar nuestras aplicaciones, siguiendo los mismos principios que hemos aplicado localmente.

Es interesante notar que, a diferencia de las instalaciones locales, en AKS el plano de control (control plane) es administrado directamente por Azure a través del Cloud Controller Manager, lo que nos libera de esa responsabilidad.

La exploración de Kubernetes en diferentes proveedores de nube nos permite entender mejor las particularidades de cada uno, preparándonos para tomar decisiones informadas según los requisitos específicos de nuestros proyectos. El conocimiento de estas plataformas se ha vuelto indispensable para cualquier profesional DevOps en el mercado actual.

¿Has trabajado con otros proveedores cloud? ¿Qué ventajas o desventajas has encontrado en AKS comparado con ellos? Comparte tu experiencia en los comentarios.