How I Deployed a Containerized Voting Application Using Docker, Azure Container Registry, and Azure Kubernetes Service

Lionell Jenious
4 min readJul 11, 2024

--

Containerized Voting Application Using Docker, Azure Container Registry, and Azure Kubernetes Service

Project Description: Azure, Docker Containers, and Kubernetes Deployment

In this real-world use case scenario, I embraced the role of a DevOps Engineer to mentor a new team member through the process of deploying a voting application using Kubernetes. This practical exercise was part of The Cloud Bootcamp, aiming to enhance participants’ understanding of cloud technologies through the Multicloud Experience — an immersive online event.

Our deployment strategy unfolded on the Microsoft Azure platform, demonstrating the robust integration capabilities of Azure with container technologies. The journey began by packaging the application into Docker containers, ensuring a seamless and consistent environment from development to production. We then pushed these Docker images to Azure Container Registry (ACR), which securely housed our container images.

The core of our deployment utilized Azure Kubernetes Service (AKS), where we orchestrated and managed our containerized application with ease. AKS provided a scalable and highly available environment, allowing us to focus on optimizing the application without the overhead of managing Kubernetes clusters.

This project not only solidified our understanding of Docker and Kubernetes but also highlighted the efficacy of Azure as a cloud service provider for enterprise-grade deployments. Below are insights, detailed procedural steps, and visual documentation of our deployment journey.

Project Description: Azure, Docker Containers, and Kubernetes Deployment

Summary of How I Provisioned and Deployed the Bootcamp Voting Application

Preparation and Setup

Item 1: Creating and Configuring Azure Container Registry (ACR):

  • Created a new resource group and set up the Azure Container Registry (ACR) to securely store the Docker images for the voting application.
  • Successfully logged into ACR and pushed the Docker image of the voting application.

Resource Group / Azure Container Registry

Create Resource Group name “ tcb-vote”
Build Azure Docker Contain image “tcb-vote” | setup Azure Container Registry “tcblionelljenious”
Successfully created Azure Container Registry | Repository
Exposed the Azure Container Registry Token for Login
Used Exposed Token to Login to Docker (Successful)
Container Registries “tcblionelljenious” | Resource Group: “tcb-vote”
Verified Docker Manifest | Docker Pull command

Item 2: Setting Up Azure Kubernetes Service (AKS) Cluster:

  • Created an AKS cluster to efficiently manage the Kubernetes environment on Azure.
  • Configured the AKS cluster by generating SSH keys and linking the ACR to ensure seamless integration.
Successfully Created Azure Kubernetes Cluster node (AKS)

Item 3: Configuring Kubernetes:

  • Edited the YAML configuration file to include the correct Docker image paths and deployment settings.
  • Applied the YAML file to the AKS cluster, provisioning the necessary resources for the application.

High-Level Summary of the YAML File and Kubernetes Execution

Purpose of the YAML File: The YAML file is used to define the desired state of various Kubernetes resources, such as Deployments and Services, in a declarative manner. It describes how the application components should be deployed and managed by Kubernetes.

Edited the YAML File to Define the Desired State of Various Kubernetes Resources
Applied Kubernetes YAML file

Item 4: Deploying the Application:

  • Deployed the backend and frontend services of the voting application using Kubernetes Deployments and Services.
  • Monitored the deployment to ensure all pods were running correctly and the application was accessible.
  • Successfully link an Azure Kubernetes Service (AKS) cluster to an Azure Container Registry (ACR)
Deployed backend and frontend services | voting application | Kubernetes Deployments and Services.
Verified Kubernetes | Nodes / Pods = successful
Verified Kubernetes Cluster IP Network / Backend IP / Frontend Load Balancer IP
Azure Kubernetes Service and Ingress

Item 5: Testing and Validation:

Azure Kubernetes Cluster “AKSClusterTCB” | Status: Succeeded (Running)
Kubernetes Node Pool | Overview | Cluster :”AKSClusterTCB” | Node Count:1
Verified Voting Application Deployment

This structured approach not only ensured a successful deployment but also provided invaluable hands-on experience with Azure, Docker containers, and Kubernetes orchestration.

--

--

Lionell Jenious
Lionell Jenious

Written by Lionell Jenious

Cloud Software Network Engineer | AWS | AI/ML | Blockchain | Azure | Google Cloud | VMware | Cloud Computing | DevOps | Software Defined Networks SD-WAN

No responses yet