Microsoft Azure

Creación de un cluster de Azure Kubernetes Services (AKS) y despliegue de una aplicación

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

  1. Damos click en All Services y digitamos aks, nos aparecerá el servicio de Kubernetes services, le damos click
  2. 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)
  3. Damos click en el botón de Next: Scale>
  4. 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>
  5. En la siguiente ventana dejamos el valor de Service principal y Enable RBAC por defecto, damos click en Next: Networking>
  6. 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 >
  7. En la siguiente ventana deshabilitamos el monitoreo que no será foco para lo que veremos ahora. Damos click en Review + create
  8. 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

  1. 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.
  2. Traeremos las credenciales del AKS para poder utilizarlo con el comando:
  3. az aks get-credentials –resource-group rg-vvillar –name aks-vvillar
  4. Para verificar la conexion digitaremos el comando kubectl que es propio de Kubernetes y ya viene integrado con CloudShell, digitamos:
  5. kubectl get nodes
  6. Digitamos el comando nano
  7. Agregamos el siguiente script:
  8. 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
    
  9. Presionamos Escape y después Control y X
  10. Digitamos Y,  le damos el nombre azure-vote.yaml y presionamos enter
  11. En base al archivo .yaml creado desplegamos la aplicación utilizando el siguiente comando:
  12. kubectl apply -f azure-vote.yaml
  13. Para ver el proceso de despliegue podemos ejecutar el comando:
  14. kubectl get service azure-vote-front –watch
  15. 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.
5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments