How can I get started with Kubernetes using Azure Container Service?


I had a university customer in the northwest ask me about how to get quickly started with the newer Kubernetes cluster deployed via Azure Container Service (ACS).

I had not played with it much so I put together a quick walkthrough of how to get a Kubernetes cluster built using Azure Container Service and how it can be paired with Helm.

What is Azure Container Service?

ACS makes it easier to create, configure, and manage a cluster of virtual machines that are preconfigured on containerized applications. It leverages the Docker format to ensure portability. You can scale to thousands or 10s of thousand of containers.

What is an Azure Container Service Kubernetes cluster?


Kubernetes is an open source container cluster manager used to deploy, scale and operate applications across a number of host computers. It has been recently added to Azure Container Service in addition to two other container orchestrators Mesosphere DC/OS and Docker Swarm.

What do I get when I deploy an ACS Kubernetes default cluster?


When you deploy an ACS Kubernetes default cluster it will automatically create one master VM and three node VMs. You can also create a customized ACS Kubernetes cluster via JSON with 1,3 or 5 master nodes, specific HW VM skus, and up to 100 agent nodes. ACS will also automatically configure VNet, a load balancer, NAT, etc. It will horizontally scale your agent nodes as you grow your container footprint so ACS has a nice advantage over installing Kubernetes without ACS in VMs which would take quite a bit longer get this running.

ACS provides the following Kubernetes features:

  • Horizontal scaling
  • Service discovery and load balancing
  • Secrets and configuration management
  • API-based automated rollouts and rollbacks
  • Self-healing

ACS with Kubernetes Prerequisites

Bash shell (I used Bash on Windows 10 see here)

Azure CLI 2.0 – install from here

To install Azure CLI I ran this from Bash:

curl -L | bash


Login into Azure via Bash:

az login


Set the right subscription context if needed (optional):

az account set --subscription "ab12c34d-56a7-9876-b4ba-a0b1cd3f1234"
az account show



Creating the Kubernetes Cluster

From Bash I ran (may need to tweak for Command Prompt Azure CLI):

(I pre-created this resource group)
az acs create --orchestrator-type=kubernetes --resource-group $RESOURCE_GROUP --name=$CLUSTER_NAME --dns-prefix=$DNS_PREFIX --generate-ssh-keys


It will take a bit but if it worked you will see a status of succeeded:


If all went well, in Azure portal you will see the Kubernetes cluster master and three nodes deployed as virtual machines. You can change the VM HW profiles if you need more CPU/RAM, etc.


Next you need to install the Kubernetes CLI to manage the cluster:

az acs kubernetes install-cli


Grab the Kubernetes cluster config locally:

az acs kubernetes get-credentials --resource-group=$RESOURCE_GROUP --name=$CLUSTER_NAME


Run kubectl get nodes to see the cluster nodes and master:


See more on ACS CLI commands here.

Install applications to the Kubernetes cluster

I installed NGIX from CLI to see if it worked:

kubectl run nginx --image nginx


You have to publish the service to the world:

kubectl expose deployments nginx --port=80 --type=LoadBalancer


You need to get the public IP for nginx:

watch 'kubectl get svc'

It may take a few minutes to get this external/public IP.

Browse to the External IP and it should show the Nginx start page:



Installing Helm in the Kubernetes cluster

I also wanted to check out what Deis provided with Kubernetes since we just acquired them. They have a great open source solution called Helm. I installed Helm in the cluster. It deploys a Tiller management server within the cluster:

curl >

chmod 700 $



Helm Tiller management server deployed in Kubernetes:


Next I went to KubeApps website which is like a registry for Helm charts (application packages) you can deploy to Kubernetes using Helm here:


If you prefer you can view Helm charts using Helm CLI run:

Helm search



I decided to install DokuWiki from the Helm charts library:


You grab the helm command line to install:

helm install stable/dokuwiki


I ran watch ‘kubectl get svc’ to get the External IP to browse to and then browsed to make sure dokuwiki deployed:


Next I installed WordPress:

helm install stable/wordpress


I ran watch ‘kubectl get svc’ to list the external IPs :


Wait a few minutes for the external IP to show up.

Browse to the external IP to test WordPress:


I can see the power of the combination of Kubernetes and Helm together as it makes brand new users like me with Kubernetes able to quickly get popular applications running in Kubernetes without much effort.

More on Helm here.

Manage Kubernetes from the browser management UI

You have to setup a proxy listener to manage via the browser:

To enable the listener from Bash I ran: kubectl proxy


With the listener running, visit this URL to see the Kubernetes interface:


Here you can see all the apps I deployed to the Kubernetes cluster:


Excellent Kubernetes ACS documentation here and a useful Kubernetes user guide here.


Enjoy quickly setting up and using Kubernetes containers via Azure Container Services!