Hola, en este artículo veremos cómo crear un cluster gestionado por AKS, una instancia completamente gestionada por Azure, que nos permita contar con orquestación e instancias para microservicios.
Prerrequisito:
- Una suscripción de Microsoft Azure.
Disclaimer: Dada la constante actualización de las tecnologías de Cloud Computing algunos pasos pueden ser diferentes al momento de leer el artículo, haré el esfuerzo por mantenerlo actualizado, pero podría haber algunas diferencias entre lo que se muestre a continuación y la consola de Azure al momento de la implementación.
Creando el recurso de AKS
- Damos click en All Services y digitamos aks, nos aparecerá el servicio de Kubernetes services, le damos click
- En la parte superior damos click en Add y nos aparecerá una ventana donde indicaremos los siguientes valores:
- Subscription: <La suscrpción de Azure>
- Resource group: Create New > rg-vvillar
- Kubernetes cluster name: aks-vvillar
- Region: (US) East US
- Kubernetes version: 1.12.7 (default)
- DNS name prefix: aks-vvillar-dns
- Node size: Standard DS2 v2 (el tamaño permanece siendo el mismo y no puede ser cambiado despues)
- Node count: 1 (la cantidad de nodos si puede ser modificada después)
Damos click en el botón de Next: Scale>
- En la siguiente ventana podemos activar nodos virtuales para escalar de manera instantánea frente a necesidades puntuales. Damos click en Enabled y click en el botón de Next: Authentication>
- En la siguiente ventana dejamos el valor de Service principal y Enable RBAC por defecto, damos click en Next: Networking>
- En la parte de networking dejamos los valores por defecto, estos valores nos permitirán alojar las máquinas virtuales que son las instancias y acceder a ellos. Damos click en el botón de Next: Monitoring >
- En la siguiente ventana deshabilitamos el monitoreo que no será foco para lo que veremos ahora. Damos click en Review + create
- Verificamos de que en la parte superior aparece Validation Passed y damos click en Create










Conectándonos al cluster y desplegando la aplicación utilizando Cloud Shell
- Una vez que tenemos creado nuestro AKS damos click en el botón superior de Cloud Shell que tiene el símbolo de >_ y seleccionamos Bash.
- Traeremos las credenciales del AKS para poder utilizarlo con el comando: az aks get-credentials –resource-group rg-vvillar –name aks-vvillar
- Para verificar la conexion digitaremos el comando kubectl que es propio de Kubernetes y ya viene integrado con CloudShell, digitamos: kubectl get nodes
- Digitamos el comando nano
- Agregamos el siguiente script:
- Presionamos Escape y después Control y X
- Digitamos Y, le damos el nombre azure-vote.yaml y presionamos enter
- En base al archivo .yaml creado desplegamos la aplicación utilizando el siguiente comando: kubectl apply -f azure-vote.yaml
- Para ver el proceso de despliegue podemos ejecutar el comando: kubectl get service azure-vote-front –watch
- Si ya es posible ver la IP Pública como en la imagen de arriba podemos ingresar a la aplicación. Vamos a un browser e ingresamos al sitio web mediante la IP pública.




apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-back
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-back
template:
metadata:
labels:
app: azure-vote-back
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: azure-vote-back
image: redis
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 6379
name: redis
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-back
spec:
ports:
- port: 6379
selector:
app: azure-vote-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: azure-vote-front
spec:
replicas: 1
selector:
matchLabels:
app: azure-vote-front
template:
metadata:
labels:
app: azure-vote-front
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: azure-vote-front
image: microsoft/azure-vote-front:v1
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
ports:
- containerPort: 80
env:
- name: REDIS
value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: azure-vote-front





