In the evolving cloud-native world, Kubernetes has become the gold standard for container orchestration over the past decade. While there are multiple cloud providers that offer managed Kubernetes services, Microsoft’s Azure Kubernetes Service (AKS) offers compelling capabilities. However, like every other technology, AKS is great at some things and not as great at others. It’s important to understand what those pros and cons are so you can choose the cloud provider that best meets your organization’s (or your team’s) needs.
Choosing AKS, just like choosing Amazon Elastic Kubernetes Service (EKS) or Google Kubernetes Engine (GKE), will make it easier for you to deploy Kubernetes. While these providers simplify Kubernetes deployment, each provider is different in terms of cluster configuration and how to best use the service. Let’s start with the pros of using AKS.
For companies that are already .NET or Microsoft shops, AKS makes sense because it is well supported in the Microsoft ecosystem. AKS also makes it easy to develop and deploy cloud-native apps in Azure, data centers, or at the edge with built-in code-to-cloud pipelines and guardrails. AKS works well for on-premises, edge, and multi cloud Kubernetes clusters. It also interoperates well with Azure security, identity, cost management, and migration services. The Azure Active Directory integration makes cluster authentication easy, leveraging its advanced identity and access management to monitor and maintain container security.
AKS allows organizations to spin up Kubernetes clusters easily, enabling rapid development and deployment of cloud-native applications. It offers automated management and scaling as well as support for Linux, Windows Server, and IoT resources via Azure Arc.
Managing Kubernetes infrastructure can be complicated and time-consuming. AKS simplifies some Kubernetes management by including debugging, continuous integration/continuous delivery (CI/CD), logging, monitoring, and automated node maintenance.
AKS ensures that you pay only for compute services. Essentially, you pay for the virtual machines and the associated storage and networking resources associated with them. AKS offers a free tier for cluster management that you can use to get started or to experiment with. It’s easy to upgrade to the standard tier, which is ideal for large-scale applications and mission-critical workloads. The standard tier offers high performance, scalability, and their service level agreement (SLA). AKS only charges for visible infrastructure: regular on-demand, reserved, or spot instance prices. Many services, including master node, cluster management, and others, are available free of charge.
It’s easy to configure the virtual network and subnet in AKS. In addition, it’s simple to use the Azure command line interface (CLI), which is a robust cross-platform command-line tool that allows you to connect to Azure and execute administrative commands on Azure resources. You can install it locally on Windows, macOS, and Linux computers, from a browser through the Azure Cloud Shell or from inside a Docker container. AKS offers an automatic repair feature for nodes, which can be paired with auto-scaling node pools.
AKS has been available since 2018. It has 20% market share, serves 1.5 million users, and is available in 145+ regions and 300+ availability zones. This is less than GKE and EKS, but certainly robust enough for most needs.
At Fairwinds, we believe strongly in using infrastructure as code, relying primarily on HashiCorp’s Terraform. Azure can be challenging to use with Terraform as its application programming interface (API) endpoints seem to be much slower than equivalent GCP or AWS APIs, throwing you out of flow on projects of all sizes. Other issues with Terraform on AKS include a more cumbersome cluster upgrade process.
You can only run on a few underlying operating systems in AKS: Ubuntu Linux, Azure Linux, and Windows Server 2022. The versions of Ubuntu, like 20.04, 22.04, and so on, are also pinned to specific versions of Kubernetes. In addition, the virtual machines do not support customization directly and it is not possible to provide a cloud init or user data script.
When deploying a cluster, you have to run a default node pool. The default node pool always has to be there. In addition, you can’t change server types once deployed. AKS also does not give you the option to bring your own AMI or user data, relying instead on the daemon set container to schedule pods on nodes early in the cluster boot process.
AKS requires additional costs to achieve an uptime of 99.95%, while free clusters have guaranteed uptime of 99.5%. For applications and services that require more uptime, expect your spend to increase beyond purely compute costs, and don’t rely on free clusters long term.
AKS offers quite a few managed add-ons and extensions, such as Prometheus-based monitoring, Application Gateway Ingress Controller, keda/event-based autoscaling, policy, GitOps, and so on. Learn more about the cluster extensions available for AKS, some of which are only currently offered by AKS. These additional capabilities are worth exploring further if you're planning to use AKS.
Overall, Azure Kubernetes Service offers a robust, scalable, and integrated solution for managing containerized applications, particularly for organizations that are already working in the Microsoft ecosystem. AKS makes it easy to get started quickly, offering simplified management and cost-effective options that are appealing for many organizations.
Understanding the pros and cons of AKS will enable you to make informed decisions and harness the full power of Kubernetes for your organization. Fairwinds can also accelerate your AKS journey by providing white-glove Kubernetes managed services. Learn how you can get started with AKS fast without requiring in-house Kubernetes expertise or specialized training with a production-grade AKS cluster, best-in-class tooling and add-ons, and a seamless way to move your workloads to production.