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





