ALL THINGS KUBERNETES

Deploy a K8s Cluster on Microsoft Azure with Supergiant Control

We are excited to announce that Microsoft Azure has joined GCE, AWS, and DigitalOcean in the list of CSPs supported by Supergiant Control. Users can now deploy K8s clusters on their Microsoft Azure accounts in a few simple steps. In this tutorial, we’ll walk you through linking your first Microsoft Azure cloud account to the Supergiant Control and deploying your first Azure cluster. Let’s get started!

About Microsoft Azure

Microsoft Azure is a cloud computing service released by Microsoft in 2010. Similarly to its competitors (e.g., AWS, GCE), Azure provides a full set of public cloud services including IaaS, PaaS, and SaaS. At the present moment, Microsoft Azure is one of the major CSPs offering support for containerized applications and container orchestration platforms. For example, the platform includes the Azure Kubernetes Service (AKS), a hosted Kubernetes solution for the deployment, and management of Kubernetes clusters on the Microsoft infrastructure. It became generally available in mid-2018.

Microsoft Azure becomes especially attractive to companies who adopted Kubernetes with the Kubernetes 1.14.0 release that includes support for adding Window nodes as workers and scheduling Windows containers. Now Kubernetes can service a vast ecosystem of Windows apps and be directly deployed to Windows nodes offered by Azure.

Tutorial

To successfully link an Azure cloud account and deploy a K8s cluster, you’ll need the following prerequisites:

— Install Supergiant Control. Check Supergiant Control documentation to learn how to install this tool.

— Microsoft Azure account. You’ll need to create a working Directory in the Azure Active Directory and register your App in that Directory. Once that’s done, you’ll need to get a Client ID (Application ID) of your app and the Tenant ID of your Microsoft Directory. These credentials can be found under Active Directory -> App Registrations (Preview) -> <APP_NAME> -> Overview in your Azure console. Also, make sure that your account has enough permissions to create VMs and other resources needed for your K8s cluster.

Azure credentials

 

For more information about getting your Client ID and Tenant ID, check this article.

— An Azure Client Secret. This is a secret string used to prove the identity of your application. You can create a new secret under -> Certificates & Secrets -> New Client Secret. Here’s how it looks:

Azure client secret

For more information about getting your Client secret, check this article.

— Subscription ID. This is your Microsoft Azure account ID. You can find your Subscription ID by searching for “Subscriptions” on the “All Services” page in your Azure Dashboard.

Now you are all set to link your first Azure cloud account to your Supergiant Control.

Linking Azure Cloud Account

First, sign in to your Supergiant Control account, and click “Link an Account” button on the Home Page. Select Microsoft Azure from the dropdown list, and you’ll see the following dialogue:

Supergiant - Azure cloud account

 

Create an optional name for your cloud account, type the credentials listed above into the corresponding fields, and click “Submit.” Control will validate the provided credentials, and, if everything is OK, it will link your Azure cloud account.

Provisioning a Cluster

Once the Azure account is linked, you will be taken to the “Create Kubernetes Cluster” wizard. You’ll have to pass several steps:

  • Name and Cloud Account
  • Cluster Configuration
  • Provider Configuration
  • Machine Configuration

Step 1: Name and Cloud Account

First, give a name to your cluster, and choose Azure cloud account. The cluster’s name can include alphanumeric characters and a dash (-), start with a letter, and be fewer than 12 characters.

Supergiant Control - Kubernetes cluster on Azure

 

Step 2: Cluster Configuration

At this stage, you can configure your K8s cluster. In particular, you can choose versions for Kubernetes, Docker, Helm, Flannel, and Ubuntu OS. You can also specify CIDR ranges you want to use and whitelist certain IPs. Control pre-populates your cluster configuration with sensible defaults so you don’t need to change anything unnecessarily. Otherwise, you can check out this doc for a full description of available settings.

Supergiant Control - Kubernetes cluster on Azure

 

Step 3: Provider Configuration

In this step, you’ll need to select an Azure region, VNet CIDR and specify a public SSH key that will be used to connect to your K8s cluster instances.

Supergiant Control - Kubernetes cluster on Azure

 

Step 4: Machine Configuration

You are now all set to configure machine instances for your K8s master(s) and nodes. Although you can deploy as many masters and nodes as you wish, we recommend using at least two masters to enable a multi-master component of High Availability. You can check the list of instances types supported by Azure here. We used a B1S instance size with 1 vCPU and 1GB, which is OK for test clusters but not production clusters.

Supergiant Control - Kubernetes cluster on Azure

 

Note: kubeadm-based provisioning we currently implement does not allow to create a single-node K8s cluster because master nodes are automatically tainted to prohibit Pod scheduling on the master. Therefore, we won’t be able to install Helm, Prometheus, and other containerized workloads needed to complete post-provisioning operations in your cluster.

Step 5: Cluster Review

Supergiant Control - Kubernetes cluster on Azure

 

We’re almost done! Review the completed steps, and click “Create” to start the provisioning.

Watch Supergiant Go!

The process of cluster provisioning can take up to 10 minutes, depending on your cluster size and network connection throughput. During this process, Control will create master and node instances, deploy K8s cluster components on nodes and masters, configure security and networking, deploy additional workloads like Prometheus, and perform other post-provision hooks. Control will ensure that your Azure cluster is secure and stable.

You are welcome to check out our official docs to learn more about the process of provisioning the cluster.

Conclusion

That’s it! We’ve successfully deployed a K8s cluster on Microsoft Azure cloud account. To learn more about managing your K8s clusters using Supergiant Control, please, consult these articles:

You can also learn more about our Supergiant products and services such as:

If you enjoyed this article you might be interested in watching the following webinar! Click on the banner below to watch it now.

Free Kubernetes Training - How to Deploy a Cluster from Scratch link to webinar

Subscribe to our newsletter