PDFelement Anniversary Sale 40% OFF
Coursera: Build New Skills Anytime, Anywhere with 100% online courses. Start Now!
Start your future with a Business Analytics Certificate.

Running Kubernetes on Microsoft Azure

This is in continuation on Kubernetes article series.In the earlier posts, we have seen how to create & deploy simple cluster.Now in this post,we are going to look at recently launched offering from Microsoft Azure.

For more posts on Kubernetes,check out here & here.

Azure Container Service (AKS) is managed Kubernetes offering from Azure.As a hosted Kubernetes service, Azure handles all heavy lifting of all the complexity, operational overhead of managing a Kubernetes cluster for you.

As a managed Kubernetes service, AKS provides:

  • Automated Kubernetes version upgrades and patching
  • Easy cluster scaling
  • Self-healing hosted control plane (masters)
  • Cost savings – pay only for running agent pool nodes

In short, AKS would provide a container hosting environment by using open-source tools and technologies. To this end, standard Kubernetes API standard endpoints are exposed and you can leverage any software that is capable of talking to a Kubernetes cluster.Like for example,kubectl


Now we can see how to create simple cluster using AKS.

Running Kubernetes on Microsoft Azure

This quickstart assumes a basic understanding of Kubernetes concepts, please refer earlier posts for understanding on Kubernetes & how to create,deploy & rollout updates to the cluster.

Use the code UFC20 during checkout for Ivacy VPN subscription plans,You'll get an additional 20% off.

Subscribe to Emails

More than 100,000 subscribers across the world trust & read Upnxtblog articles. Subscribe to emails updates!
* indicates required

Step#1.Launch Azure Cloud Shell

Once you login to Azure Portal,on the upper right corner,there is an option to Azure Cloud Shell.Azure Cloud Shell is a free Bash shell has the Azure CLI preinstalled and configured to use with your account.

Launch Azure Cloud Shell

Image – Launch Azure Cloud Shell

A powerful and intuitive video editing experience


Azure Portal

Image – Azure Portal

Step#2.Enable AKS Preview

From the Azure Shell,enable AKS preview by the below command.

az provider register -n Microsoft.ContainerService
Enable AKS Preview

Image – Enable AKS Preview

On the registrationState field you can see that its ‘Registering’,you can check the status of the registration by following command.

az provider show -n Microsoft.ContainerService
AKS Registration Successful

Image – AKS Registration Successful

Once registration is complete, we are now ready to create a Kubernetes cluster with AKS.

Step#3.Resource group creation

Before we create the cluster & nodes,we would need to create Azure resource group which is nothing but a logical group in which Azure resources are deployed and managed.

Create new resource using below command.

az group create --name k8SResourceGroup --location westus2

Before proceeding to the next step,check the provisioningState on the ouput.It should be “Succeeded”

Step#4.Kubernetes cluster creation

Creates a sample cluster named myK8sCluster with one node.

az aks create --resource-group k8SResourceGroup --name myK8sCluster --node-count 1 --generate-ssh-keys
Azure create cluster

Image – Azure create cluster

Above command would take sometime to create the cluster, once the command completes and returns JSON-formatted information about the cluster.

JSON-formatted output about the cluster

Image – JSON-formatted output about the cluster

Step#5.Connect to Kubernetes cluster

For us to connect, manage Kubernetes cluster, we are going to use kubectl, the Kubernetes command-line client.Azure cloud shell has already built-in kubectl so we don’t have to install them separately.

To configure kubectl to connect to our Kubernetes cluster, run the following command. This step downloads credentials and configures the Kubernetes CLI to use them.

az aks get-credentials --resource-group k8SResourceGroup --name myK8sCluster
Connect to Kubernetes cluster

Image – Connect to Kubernetes cluster

To verify kubectl configuration, check the version of kubectl

Deep Learning Specialization on Coursera
kubectl version

Image – kubectl version

Step#6. Deploy new application on the cluster

Now we are going to create new Kubernetes manifest file that defines a desired state for the cluster, including what container images should be running etc.,

Create file named Deployment.yml,you can use vi editor to create this file.

Deployment manifest file

Image – Deployment manifest file

apiVersion: apps/v1beta1
kind: Deployment
  name: nginx-deployment
  replicas: 1
        app: nginx
      - name: nginx
        image: nginx:latest
        - containerPort: 80

Use the kubectl create command to deploy the application.

New SSD Cloud Server Packages Now Available from $2.50/Month on Alibaba Cloud
Create new Deployment

Image – Create new Deployment

In this example:

  • A Deployment named nginx-deployment is created, indicated by the metadata: name field.
  • The Deployment creates 1 replicated Pods, indicated by the replicas field.
  • The Pod template’s specification, or template: spec field, indicates that the Pods run one container, nginx, which runs the nginx Docker Hub latest image (you can also specify the version ex.1.7.9.)
  • The Deployment opens port 80 for use by the Pods.

Now that deployment is created,lets check the deployment information using kubectl get deployment command :

kubectl get deployment command

Image – kubectl get deployment command

When you inspect the Deployments in your cluster, the following fields are displayed:

TextNow Download
  • NAME lists the names of the Deployments in the cluster.
  • DESIRED displays the desired number of replicas of the application, which you define when you create the Deployment. This is the desired state.
  • CURRENT displays how many replicas are currently running.
  • UP-TO-DATE displays the number of replicas that have been updated to achieve the desired state.
  • AVAILABLE displays how many replicas of the application are available to your users.
  • AGE displays the amount of time that the application has been running.

Describe the deployment using kubectl describe deployment command to check the details on the deployment.

kubectl describe deployment command

Image – kubectl describe deployment command

Step#7. Create service

Kubernetes Service is an abstraction which defines a logical set of Pods and a policy by which to access them  (micro-service). The set of Pods targeted by a Service is determined by a Label Selector

Kubernetes has powerful networking capabilities that control how applications communicate. These networking configurations can also be controlled via YAML.The Service selects all applications with the label ngnix. As multiple replicas, or instances, are deployed, they will be automatically load balanced based on this common label. The Service makes the application available via a NodePort.

Create new file named svc.yml to define load balancers & apps.

Service Yaml file

Image – Service Yaml file

apiVersion: v1
kind: Service
 name: nginx-svc
 app: nginx
 type: LoadBalancer
 - port: 80
 app: nginx

Use kubectl create command to create new service based on the svc.yaml file created in the previous step.

Create new service

Image – Create new service

Once the External-IP is available,we can browse the ngnix page.

Once External IP is assigned we can browse ngnix page

Image – Once External IP is assigned we can browse ngnix page


ngnix landing page

Image – ngnix landing page

Step#8. Clean up

Finally now its time to clean up the resources what we have created:

kubectl delete service my-nginx
kubectl delete deployment my-nginx
kubectl detelet service command

Image – kubectl detele service command


kubectl detele deployment command

Image – kubectl detele deployment command

Like this post? Don’t forget to share it!

Additional Resources :

Article Name
Running Kubernetes on Azure
In this post,we are going to learn about managed Kubernetes offering from Azure (AKS) & also on how to create simple application deployment.
Publisher Name
%d bloggers like this: