Despliegue de Clústeres Kubernetes en AKS y GKE
Clase 19 de 24 • Curso de Kubernetes
Azure Kubernetes Service (AKS)
Paso 1: Prerrequisitos
Antes de crear un clúster de AKS, asegúrate de tener lo siguiente:
-
Suscripción de Azure:
- Necesitas una suscripción activa de Azure. Si no tienes una, puedes crear una cuenta gratuita en Azure Free Account.
- Para poder usar la cuenta de Azure y no tener límites de uso debes usar una tarjeta que tenga un saldo mínimo, para esta práctica no debería cobrarnos nada, solo validar que es una tarjeta real.
-
Azure CLI instalado:
-
Instala la CLI de Azure en tu máquina local. Puedes descargarla desde Guía de instalación de Azure CLI.
-
Verifica la instalación ejecutando:
az --version
-
-
Kubernetes CLI (kubectl):
-
Instala
kubectl
para interactuar con tu clúster de AKS. Puedes instalarlo ejecutando:az aks install-cli
-
Paso 2: Inicia sesión en Azure
Inicia sesión en tu cuenta de Azure usando la CLI de Azure:
az login
Esto abrirá una ventana del navegador para la autenticación. Una vez que inicies sesión, la CLI mostrará los detalles de tu suscripción. Debes seleccionar la suscripción que hayas configurado en el paso 1. Paso 3: Crea un grupo de recursos
Los clústeres de AKS se crean dentro de un grupo de recursos. Crea uno con el siguiente comando:
az group create --name --location
- Reemplaza con el nombre que desees (por ejemplo,
miGrupoDeRecursos
). - Reemplaza con la región de Azure (por ejemplo,
eastus
,westeurope
).
Ejemplo:
az group create --name k8scourse-aks-demo --location eastus\
Paso 4: Crea el clúster de AKS
Usa el siguiente comando para crear un clúster de AKS:
az aks create --resource-group --name --node-count --enable-addons monitoring --generate-ssh-keys
- Reemplaza con el nombre de tu grupo de recursos.
- Reemplaza con el nombre de tu clúster (por ejemplo,
miClústerAKS
). - Reemplaza con el número de nodos que deseas en tu clúster (por ejemplo,
3
).
Ejemplo:
az aks create --resource-group k8scourse-aks-demo --name k8sCourseDemoAKS --node-count 2 --enable-addons monitoring --generate-ssh-keys
Como resultado de crear este clúster, el comando devolverá un JSON con los detalles de los recursos creados.
También puedes visualizar desde la consola tu nuevo clúster, para esto te diriges a la sección de Servicios de Kubernetes
Explicación de los parámetros:
-enable-addons monitoring
: Habilita Azure Monitor para tu clúster.-generate-ssh-keys
: Genera automáticamente claves SSH para el clúster.
Paso 5: Conéctate al clúster de AKS
Una vez creado el clúster, necesitas configurar kubectl
para conectarte a él. Ejecuta el siguiente comando:
az aks get-credentials --resource-group --name
Ejemplo:
az aks get-credentials --resource-group k8scourse-aks-demo --name k8sCourseDemoAKS
Este comando descarga las credenciales del clúster y configura kubectl
para usarlas. Puedes usar varios clústers desde un mismo Kubectl
para esto puedes usar el comando kubectl config get-contexts
y kubectl config use-context
para seleccionar.
En este caso, después de validar el contexto, notarás que az aks
configura el clúster de AKS por defecto como el contexto a usar.
Paso 6: Verifica el clúster
Para asegurarte de que tu clúster está funcionando, usa el siguiente comando:
kubectl get nodes
Paso 7: Limpia los recursos (Opcional)
Si ya no necesitas el clúster de AKS, elimínalo para evitar cargos innecesarios:
az aks delete --resource-group --name --yes --no-wait
También puedes eliminar el grupo de recursos para eliminar todos los recursos asociados:
az group delete --name --yes --no-wait
Problemas frecuentes
En ocasiones, dependiendo si tu cuenta es nueva, podrías enfrentar problemas con respecto a los permisos de tu suscripción. Tal como alguno de los siguientes:
Conflict({"error":{"code":"MissingSubscriptionRegistration","message":"The subscription is not registered to use namespace 'microsoft.insights'. See https://aka.ms/rps-not-found for how to register subscriptions.","details":[{"code":"MissingSubscriptionRegistration","target":"microsoft.insights","message":"The subscription is not registered to use namespace 'microsoft.insights'. See https://aka.ms/rps-not-found for how to register subscriptions."}]}}
Para solucionarlo, me apoyé en la documentación oficial, la cual indicaba que podría listar los permisos pendientes de registrar con el siguiente comando:
az provider list --output table
En mi caso, el permiso faltante era con respecto a microsoft.insights
. Después de validar cuáles permisos faltaban, los agregue usando los siguientes comandos:
az provider register --namespace microsoft.insights az provider register --namespace Microsoft.ContainerService
Después de esperar a que el estado sea Registered
, ya podemos continuar
Otro problema frecuenta con las cuentas nuevas es la falta de Quota de CPU.
Esto se puede solucionar desde el dashboard en la sección de Suscripción, en el menú de Proveedores de recursos debes buscar y registrar el proveedor *Microsoft.Compute
.*
Google Kubernetes Engine (GKE)
Paso 1: Configura tu entorno de Google Cloud
- Crea una cuenta de Google Cloud:
- Si no tienes una cuenta de Google Cloud, regístrate en Google Cloud Console.
- Los nuevos usuarios suelen recibir créditos gratuitos para usar servicios como GKE.
- Habilita la facturación
- Asegúrate de que la facturación esté habilitada en tu proyecto de Google Cloud. Sin facturación, no podrás crear un clúster en GKE.
- En este paso es necesario que cuentes con una tarjeta de crédito, puedes usar una tarjeta que tenga un saldo mínimo, para esta práctica no debería cobrarnos nada, solo validar que es una tarjeta real.
-
Instala las herramientas necesarias:
Instala el Google Cloud SDK en tu máquina local. Puedes descargarlo desde Google Cloud SDK. Mi recomendación es que lo hagas desde la documentación oficial, ya que desde blogs o foros de internet puede apuntar a enlaces desactualizados o ejecutables maliciosos.
Después de descargar y descomprimir el ejecutable desde el link, la instalación fue sencilla, solo fue ejecutar estos comandos para instalar las librerías y utilidades necesarias.
./google-cloud-sdk/install.sh
-
Autentícate con Google Cloud
Ejecuta el siguiente comando para iniciar sesión en tu cuenta de Google Cloud
gcloud auth login
Después de esto, tu browser abrira una pantalla donde podras seleccionar la cuenta que quieres usar y luego de esto ya estaras autenticado.
- Configura tu proyecto
- En mi caso no tenía ningún proyecto creado, entonces cree uno para el curso y así empezar con un entorno limpio.
-
Luego podemos seleccionar el proyecto desde la consola
gcloud config set project [PROJECT_ID]
Paso 2: Habilita las APIs necesarias
-
Habilita la API de Kubernetes Engine:
-
Ejecuta el siguiente comando:
gcloud services enable container.googleapis.com
-
-
Habilita otras APIs si es necesario (por ejemplo, la API de Compute Engine):
-
Ejecuta:
gcloud services enable compute.googleapis.com
-
Esto es necesario para poder interactuar con los clústeres de Kubernetes mediante la CLI
En caso de que no lo ejecutes o no tengas habilitados estos permisos te podrías encontrar con un error similar a este.
Paso 3: Crea un clúster en GKE
Ejecuta el siguiente comando para crear un clúster
gcloud container clústers create [clúster_NAME] \ --zone [ZONE] \ --num-nodes [NUMBER_OF_NODES]
- Reemplaza
[clúster_NAME]
con el nombre deseado para tu clúster (por ejemplo,k8s-course-demo
). - Reemplaza
[ZONE]
con la zona donde deseas desplegar el clúster (por ejemplo,us-central1-a
). - Reemplaza
[NUMBER_OF_NODES]
con el número de nodos que deseas en el clúster.
Ejemplo:
gcloud container clústers create k8s-course-demo \ --zone us-central1-a \ --num-nodes 2
Resultado:
Paso 4: Conéctate a tu clúster de GKE
-
Obtén las credenciales del clúster para configurar
kubectl
:gcloud container clústers get-credentials [clúster_NAME] --zone [ZONE]
Ejemplo:
gcloud container clústers get-credentials k8s-course-demo --zone us-central1-a
-
Verifica la conexión:
-
Ejecuta el siguiente comando para listar los nodos en tu clúster:
kubectl get nodes
-
Deberías ver una lista de nodos en tu clúster.
-
-
Error al consultar Pods o Nodos
En este caso la solución se encuentra en la documentación oficial, instalando el componente de autenticación para permitir que kubectl se conecte con clúster de GKE
gcloud components install gke-gcloud-auth-plugin
después de esto ya deberías poder ejecutar comandos tal cual como lo harías en minikube
Crear un clúster en GKE es muy sencillo con los pasos que acabamos de ejecutar. En este paso ya puedes desplegar tus aplicaciones de prueba en GKE. Recuerda, si no vas a usar tu clúster o recursos en ejecución, debes eliminar los recursos creados.
Paso 5: Limpia los recursos
Elimina el clúster cuando termines para evitar costos:
```bash gcloud container clústers delete [clúster_NAME] --zone [ZONE] ``` ```bash gcloud container clústers delete k8s-course-demo --zone us-central1-a ```
Resultado
En esta clase, aprendimos a desplegar clústeres de Kubernetes en dos de las plataformas más populares de la nube: Google Kubernetes Engine (GKE) y Azure Kubernetes Service (AKS). Exploramos los pasos clave, desde la configuración de los entornos hasta la creación, conexión y verificación de los clústeres, además de cómo solucionar problemas comunes que pueden surgir durante el proceso. Ahora tienes las herramientas necesarias para comenzar a trabajar con Kubernetes en entornos de producción o pruebas en la nube.
Kubernetes es una tecnología poderosa que está transformando la forma en que las aplicaciones modernas se desarrollan, despliegan y escalan. Sin embargo, lo que vimos hoy es solo el comienzo. Dominar Kubernetes requiere profundizar en conceptos como la gestión de pods, servicios, despliegues, almacenamiento persistente, monitoreo y seguridad.
Ahora que sabes que puedes usar cualquiera de estos 2 Cloud providers para desplegar tus aplicaciones altamente disponibles. Tu siguiente reto es explorar cuál de estos 2 Provider se acomoda más con tu caso de uso e intentar desplegar una aplicación básica en ambos clústeres y compara el rendimiento. Además, no olvides compartir tus hallazgos y preguntas en la sección de comentarios.
¡Nos vemos en la próxima clase! 🚀