Project Description

In another project based on a real world scenario, I had to act as a DevOps Engineer, and show a new team member how to deploy an application on a Kubernetes cluster.

This cluster is part of The Cloud Bootcamp project, and I prepared this new team member to deploy the voting application that was developed for the MultiCloud Experience, an online event where participants had the opportunity to learn about Cloud technologies.

I deployed it to Microsoft Azure cloud, where I first pushed the application’s Docker image to Azure Container Registry (ACR) and then used the Azure Kubernetes Service (AKS) service to deploy a cluster managed by Microsoft Azure.

Requirements

  • Microsoft Azure Account

Solution Architecture

Tools & Technology

  • Azure Container Registry
  • Kubernetes Cluster
  • Docker
  • Regis
  • Azure Kubernetes Service – AKS
  • Phyton Flask

Project Implementation Phases

    1 – Creation of a virtual machine in Azure to execute this project

    2 – Install Unzip

    3 – Install Docker and Docker Compose

    4 – Start Docker

    5 – Download and unzip app content

    6 – Upload app with Docker Compose for validation

    7 – Test if the 2 containers are running

    8 – In the Azure console, open port 8080 of the virtual machine; in Networking copy the public IP of the virtual machine and paste it in the Chrome browser; the application screen will appear with 2 buttons

    9 – Stop Docker Compose

    10 – Install Azure CLI

    11 – Login Azure CLI

    12 – Create Azure Container Registry – ACR

    13 – Login ACR

    14 – List ACR server

    15 – Change tag

    16 – Upload (push) the image to Azure Container Registry (ACR)

    17 – Create cluster on Azure Kubernetes Service (AKS)

    18 – Install KUBECTL

    19 – Get credentials to Log in to the Kubernetes Cluster

    20 – Edit file ‘tcb-vote-plus-redis.yaml’

    21 – Deploy the application on the cluster

    22 – Get public IP from Load Balancer and test application


    Out of respect for The Cloud Bootcamp’s intellectual property rights, codes used in this project are omitted from this article.