Azure Kubernetes Service

RAJNISH MISHRA
4 min readMar 13, 2021

We have already seen what in k8s and why it’s used in the Industry. So , we will not discuss about that in this article. If you want you can refer my previous article I have written on k8s.

But we also know managing and creating Kubernetes Cluster is a very hectic and complex process. So, different cloud Platforms provide their own managed Kubernetes service. I have already discussed about Amazon’s managed k8s service EKS. In this article we will discuss about Azure Kubernetes Service.

Azure Kubernetes Service

Although Kubernetes makes application workloads more efficient to deploy and manage as containers, there’s one thing that held Kubernetes back — the infrastructure needed to deploy it.

Originally, we have to deploy Kubernetes on a few Linux virtual machines or servers, install the Kubernetes API, manage the master and worker nodes, and configure the environment. With Kubernetes in Azure, we don’t have to do any of that. Instead, we can use a service called Azure Kubernetes Services (AKS).

Azure Kubernetes Service (AKS) offers serverless Kubernetes, an integrated continuous integration and continuous delivery (CI/CD) experience and enterprise-grade security and governance. Unite our development and operations teams on a single platform to rapidly build, deliver and scale applications with confidence.

AKS is an abstraction for everything we originally had to do to create a Kubernetes cluster. This gives us a hosted Kubernetes cluster. What this means is Azure will host our master nodes for free with the option to upgrade to add an Uptime SLA for a small cost. This paid for option will give us a financially-backed uptime guarantee of 99.95% for the Kubernetes API, which is used to manage the cluster (e.g. kubectl). The 99.95% uptime guarantee includes the use of Azure Availability Zones. The uptime increases to 99.9% for clusters that do not use Azure Availability Zones.

Now, do not think that everything is free, we still have to pay for our nodes, but we only pay for what we use. When it comes to nodes, we have a few options. With AKS, we get something called node pools. These nodes are basically an Azure Virtual Machine Scale Sets (VMSS). With every AKS cluster, we need to have a Linux node pool. This node pool becomes the system node pool and will run all the system containers for the AKS cluster, DNS etc. Even though it is called the system node pool, we can still use it to schedule our own pods, but as we have all of the system pods running we do not get the full amount of CPU and Ram.

We can also add Windows node pools to AKS clusters now. This will allow us to run Windows containers in our AKS cluster. This is relatively new but so helpful. One down side from running Windows containers in AKS is scaling, Windows nodes can take a few minutes to create and get ready for scheduling, but as Windows node pools can never be a system node pool, they will never run the core Kubernetes pods, this means we get more CPU and Ram to use.

Let’s talk about 3 key reasons why we’d want to use AKS.

NO CLUSTER MANAGEMENT

With AKS, we don’t have to manage the master node and the API itself. Instead, Azure manages that for us. We literally never even connect to it or see it. One of the only times we need to interact with the master node is to upgrade the API version of Kubernetes, and all we have to do for that is click a button in the Azure portal. The technical stuff is done on the backend.

The only infrastructure management we have is the virtual machines running the worker nodes, but it’s very rare that we’ll even have to touch those, ever. For example, most people never even SSH into them the entire time they’re up.

SECURITY

When it comes to security, Azure has hundreds of employees that their sole focus in cyber security. Because of that, the clusters and servers that AKS is running on is certainly in good hands.

Another key component to security in AKS is authentication. Azure uses Azure Active Directory (AAD) and service principals to give us as much granularity in our security practices as we’d like. We can make the clusters as freely available as we want or lock them down to a single department.

MONITORING

Monitoring plays a huge role for any developer or cloud infrastructure professional. A properly monitored Kubernetes cluster is the difference between an application that’s running in production for a customer and a really bad wakeup call at late night or holiday.

With AKS, monitoring and alerting is built-in for we automatically. We don’t have to set anything up or configure a monitoring solution on a server. Azure Monitor and AKS are used together to see information like:

  • Container status
  • Resource utilization
  • Server status
  • Many others

I hope the article was able to give you a brief insight. If you have any feedback or suggestion, you can comment below.

You can appreciate the article by giving it a like and posting comment about your feedback here or on LinkedIn.

--

--