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

Gisela Torres
Computación en la nube
June 13, 2020

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

AKS es el 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!


Gisela Torres

Gisela Torres trabaja en Microsoft como Cloud Solution Architect. Se trata de un puesto técnico cuya misión es apoyar y asesorar sobre soluciones y arquitecturas cloud utilizando Microsoft Azure como plataforma. Antes de eso trabajo como arquitecta de software y desarrolladora de aplicaciones en varias empresas. Durante esos años recibio varios premios por ejemplo Most Valuable Professional en Microsoft Azure. Le encanta programar y la tecnología en general.

Más artículos de Gisela en su blog - https://www.returngis.net/

Related Posts

Boletin informativo SpainClouds.com

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form