Deploying Kubernetes Clusters Using Azure Container Service Engine – Preparations

Time to get all pieces in place. In order to start deploying K8s cluster using acs-engine, we need to start getting all of our tools inline such as Azure CLI, IDE environment, and the actual acs-engine binaries.

Azure CLI & IDE

If you haven’t installed Azure CLI by now, this will a good excuse to do so. The installation is easy, just go through the steps in this KB. Once installed, log in to your Azure account using the az login command and set the subscription you want to work on as the default one using the following command:

az account set –subscription “your subscription id”

For me, rather if it is a big project or just an ad-hoc task, when there is some coding needed there is always Visual Studio Code (VSCode). You can use whatever IDE you’re comfortable with but if you are using VSCode, make sure you install both Azure Resource Manager Tools and Prettify JSON extensions as it will make your life a bit easier.

SSH Keys

Next, we need to generate an SSH key as this will be used by Kubernetes APIs to interact with the clusters and in order for you to SSH the master nodes. If you are a Windows user, the easiest way to this is to use Putty Pageant. If you are a MacBook user like me, GitHub created a 2 min simple guide on to check for existing keys and how to generate new SSH key on Mac – no need to reinvent the wheel here 🙂

I will say that there is no real need to do this via Git Bash nor Adding your SSH key to the ssh-agent as mentioned in the guide.

Once you have your SSH public key generated, copy and paste it somewhere as we will use it later on in our acs-engine cluster definition. 

Azure Service Principle Name (SPN)

Kubernetes clusters have integrated support for various cloud providers as core functionality. On Azure, acs-engine uses a Service Principal to interact with Azure Resource Manager (ARM).

You can create Azure SPN using either the CLI, Powershell or the Azure portal. My preference of choice is to use the CLI. Once the SPN has been generated, copy the output somewhere as we will use it later on.


It’s time to install acs-engine. Two options here – use the available binaries or build from source. In my case and by the time of writing this post, I have downloaded acs-engine 0.9.4 binaries and extract it.


In order to communicate with K8s clusters we are about to deploy, we need to install Kubernetes command-line tool. Easy to do and again, no need to reinvent the wheel here.

Good stuff! We now have all the tools and perquisites in place for the next posts where we gonna start deploying some K8s clusters using different configurations.   

Be the first to comment

Leave a Reply