Azure Kubernetes Service: tu clúster manejado en la nube

En el artículo anterior te estuve contando diferentes alternativas para tener un entorno de Kubernetes. Obviamente, la más flexible que existe a día de hoy es en la nube. Hoy te voy a contar cómo empezar con Kubernetes en Microsoft Azure, desplegando tu primer clúster as a service.

Azure Kubernetes Service

Se trata del servicio gestionado por Microsoft Azure para este tipo de clústers. Lo mejor de todo es que te evita tener que realizar toda la instalación y preparación preliminar que vimos en el primer artículo de esta serie. De hecho, los master nodes son completamente administrados por Azure. Es más, ni siquiera pagas por ellos, ya que solo pagas por los worker nodes que quieras tener, los cuales son maquinas virtuales que son configuradas automáticamente para unirse a tu clúster.
Otra de las ventajas que tiene AKS es que simplifica la actualización de tu clúster a nuevas versiones de Kubernetes: lo único que debes hacer es indicar la hora a la que quieres que se lleve a cabo la actualización.

Creación de un clúster en AKS

Para crear un clúster en AKS puedes hacerlo siguiendo este script:

#Create an azure-cli container 
docker run -it --rm microsoft/azure-cli sh

#Login
az login

#Select your subscription account
az account set -s "Microsoft Azure Internal Consumption"

#Create a resource group
RESOURCE_GROUP="AKS-Demo"
$RESOURCE_GROUP="AKS-Demo"
LOCATION="northeurope"

az group create -n ${RESOURCE_GROUP} -l ${LOCATION}

#Create a cluster
AKS_NAME="gisaks"
$AKS_NAME="gisaks"

az aks create -g ${RESOURCE_GROUP} -n ${AKS_NAME} \
--node-count 1 --generate-ssh-keys

#Install kubectl if you don't have it
az aks install-cli

#configure kubectl to comunicate with out AKS cluster
az aks get-credentials -g ${RESOURCE_GROUP} -n ${AKS_NAME}

#Check kubectl version
kubectl version --short

kubectl get nodes

kubectl get services --all-namespaces

#Access Kubernetes Dashboard
az aks browse -g ${RESOURCE_GROUP} -n ${AKS_NAME}

#Giving permissions
kubectl create clusterrolebinding kubernetes-dashboard -n kube-system --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard

#Scale cluster
az aks scale -g ${RESOURCE_GROUP} -n ${AKS_NAME} --node-count 3

#delete the resource group and the cluster
az group delete -n ${RESOURCE_GROUP}

Como ves, lo primero que hago es utilizar un Azure CLI de usar y tirar, para tener la linea de comandos de Azure lo mas actualizada posible. Inicio sesión en mi suscripción, creo un grupo de recursos y, después, a través del comando az aks create creo un clúster de un solo nodo.
Si no tienes kubectl en la máquina donde estás ejecutando estos comandos az aks install-cli lo instala por ti. Acto seguido, necesitas mapear tu kubectl con el clúster que tienes ya tienes en la nube. Para ello, usamos az aks get-credentials. A partir de este momento, puedes utilizar el comando como venías haciendo. Puedes comprobar la versión de Kubernetes que se estás ejecutando en la nube, recuperar el número de nodos, ver los servicios que se están ejecutando, etcétera.
Para acceder a Kubernetes Dashboard puedes hacerlo a través de az aks browse, pero recuerda darle permisos justo con la línea que te he dejado debajo. Por último, si quieres escalar el número de nodos puedes utilizar az aks scale como te muestro.

¡Saludos!