A Closer Look at Azure Kubernetes Service

The Azure logo, with a drawing of Bit the Raccoon looking up at it.

Azure Kubernetes Service (AKS) manages your hosted Kubernetes environment and makes it simple to deploy and manage containerised applications in Azure. Your AKS environment is enabled with features such as automated updates, self-healing, and easy scaling.

The Kubernetes cluster master is managed by Azure and is free – you manage the agent nodes in the cluster and only pay for the VMs on which your nodes run.

You can either create your cluster in the Azure portal or use the Azure CLI. When you create the cluster, you can use Resource Manager templates to automate cluster creation. Using these templates, you can specify features such as advanced networking, Azure Active Directory (AD) integration, and monitoring. This information is then used to automate the cluster deployment on your behalf.

The great advantage of AKS is that it gives you the benefits of open-source Kubernetes without the complexity or operational overhead compared to running our own custom Kubernetes cluster.

Creating an AKS cluster

At its core, an AKS cluster is a cloud-hosted Kubernetes cluster. Unlike a custom Kubernetes installation though, AKS streamlines the installation process and takes care of most of the underlying cluster management tasks.

You have two options when you create an AKS cluster, and that’s to decide whether you use the Azure portal or the Azure CLI. Both options require you to configure basic information about the cluster, such as:

  • The Kubernetes cluster name
  • The version of Kubernetes you’re installing
  • A DNS prefix to make the master node publicly accessible
  • The initial node pool size

The initial node pool size defaults to two nodes, however it’s recommended that at least three nodes are used for a production environment.

Unless specified, the Azure service creation workflow creates a Kubernetes cluster using default configuration for scaling, authentication, networking and monitoring. Creating an AKS cluster typically takes a few minutes, and once complete, you can change any of the default AKS cluster properties. Access and management of your cluster is done through the Azure portal or from the command line.

How workloads are developed and deployed to AKS

Image showing combined services used to accelerate development and deployment.

AKS supports the Docker image format, which means that you can use any development environment to create a workload, package the workload as a container and deploy the container as a Kubernetes pod.

You can use the standard Kubernetes command-line tools or the Azure CLI to manage your deployments. The support for the standard Kubernetes tools ensures that you don’t need to change your current workflow to support an existing Kubernetes migration to AKS.

AKS also supports all the popular development and management tools such as Helm, Draft, the Kubernetes extension for Visual Studio Code and Visual Studio Kubernetes Tools.

Azure Dev Spaces

Setting up a local Kubernetes cluster on a developer machine can be complex, and most solutions offers a single node configuration. It’s also common to mock or replicate dependencies between developer teams when working on microservices projects.

Azure Dev Spaces helps your development teams be more productive on Kubernetes and allows you to:

  • Minimise the local dev machine setup for each team member as developers can work directly in AKS
  • Rapidly iterate and debug code directly in Kubernetes using Visual Studio or Visual Studio Code
  • Generate Docker and Kubernetes configuration-as-code assets to use from development through to production
  • Develop your code in isolation, and do integrated testing with other components without replicating or mocking up dependencies

Do note, however, that Azure Dev Spaces is supported only by AKS clusters in specific regions.

Deployment Center

Deployment center simplifies setting up a DevOps pipeline for your application. You can use this configured DevOps pipeline to set up a continuous integration (CI) and continuous delivery (CD) pipeline to your AKS Kubernetes cluster. With Azure DevOps Projects you can:

  • Automatically create Azure resources, such as an AKS cluster
  • Create an Azure Application Insights resource for monitoring an AKS cluster
  • Enable Azure Monitor for containers to monitor performance for the container workloads on an AKS cluster

You can add more DevOps capabilities by extending the default configured DevOps pipeline. For example, you can add approvals before deploying, provision additional Azure resources, run scripts or upgrade workloads.

Azure Service Integration

AKS allows us to integrate any Azure service offering and use it as part of an AKS cluster solution.

For example, Kubernetes doesn’t provide middleware and storage systems. If you need to add a processing queue to the fleet management data processing service, you can easily do so by using Azure Storage.

Want to learn more?

With Microsoft Learn, you can kick off your journey into Azure Kubernetes Service with easy to understand training – and best of all, it’s free! This is the perfect way to work through new software.

Further resources