More about Kubernetes on AWS
- AWS ECS in Depth: Architecture and Deployment Options
- EKS vs AKS: Head-to-Head
- AWS ECS vs EKS: 6 Key Differences
- Kubernetes on AWS: 3 Container Orchestration Options
- AWS EKS Architecture: Clusters, Nodes, and Networks
- EKS vs GKE: Managed Kubernetes Giants Compared
- AWS ECS vs Kubernetes: An Unfair Comparison?
- AWS Kubernetes Cluster: Quick Setup with EC2 and EKS
What is Amazon Elastic Kubernetes Service (EKS)?
What is Azure Kubernetes Service (AKS)?
Amazon Elastic Kubernetes Service (EKS) offers cloud-based container orchestration. The service natively integrates with Kubernetes—a popular open-source container orchestrator.
EKS uses Kubernetes to automatically scale and manage clusters on AWS. EKS enables enterprises to use Kubernetes without having to install, manage, or operate the tool itself.
Learn more about EKS and related services in our detailed guides to:
Azure Kubernetes Service (AKS) offers cloud-based managed container orchestration based on Kubernetes.
AKS can handle critical tasks, including the deployment, scaling, and management of container-based applications and Docker containers. The service lets you build scalable applications with Kubernetes and Docker on top of the Azure cloud.
Learn more about AKS and related services in our detailed guides to:
In this article, you will learn:
- Managed Kubernetes Pros and Cons
- EKS vs AKS
- EKS and AKS Storage with Cloud Volumes ONTAP
Managed Kubernetes Pros and Cons
Benefits of Managed Kubernetes Services
- No need to manage Kubernetes—services like AKS and EKS enable you to use Kubernetes without having to maintain the cluster state or Kubernetes API. The control plane is abstracted from the operator, and all you need to do is choose a server type and run workloads on your nodes.
- Native cloud infrastructure—since AKS and EKS are designed by cloud vendors, these services fully support their underlying infrastructure. This enables Kubernetes to automatically create cloud resources, including nodes, persistent storage and load balancers.
- Support for private nodes and private APIs—container workloads occasionally require permission to interact with cloud provider APIs. Each provider offers a pre-integrated IAM hierarchy and service account that supports Kubernetes primitives.
Disadvantages of Managed Kubernetes Services
- Reliance on upstream Kubernetes development—service providers must keep up with Kubernetes updates. This is critical to ensure all features are available and all security patches are applied. But this means you are forced to regularly upgrade to the most recent version of Kubernetes, and need to constantly update applications and workflows to keep up with new versions.
- It is not possible to configure the control plane—operators are limited in their ability to enable or disable Kubernetes API features.
- Cluster autoscaler limitations—managed Kubernetes providers use this feature to scale. However, the cluster autoscaler comes with limitations and does not offer complete control over scaling behavior.
EKS vs AKS: Head-to-Head Comparison
Upgrades and Availability
AKS takes a very structured approach to supported versions and encourages customers to upgrade Kubernetes. The service quickly updates to new Kubernetes versions and also supports small patches. Upgrading typically requires some manual work.
A main advantage of AKS is that it offers an automatic repair feature for nodes, which can be paired with auto-scaling node pools. However, AKS is inferior in terms of uptime, requiring additional costs to achieve an uptime of 99.95% (free clusters only have guaranteed uptime of 99.5%).
EKS takes a more pragmatic approach to version control, continuing to support version 1.15, which is commonly used in production. Like AKS, upgrading requires some manual work.
EKS does not provide specialized node health monitoring or repair. Rather, the service lets you create custom health checks and automated replacements for EKS nodes. EKS provides 99.95% uptime by default for all clusters, with no additional costs.
AKS only charges for visible infrastructure—you pay regular on-demand, reserved, or spot instance prices for Kubernetes nodes. Services like master node, cluster management and other services are offered for free.
EKS also charges regular EC2 prices for nodes, but also charges $0.1 per hour per cluster for operating Kubernetes master nodes. This can quickly add up in large Kubernetes deployments.
Both services integrate with the respective serverless container platforms, which are priced differently from Azure VMs and EC2 instances.
AKS offers a serverless feature called Virtual Nodes, which can help you achieve faster and more granular scaling. The feature lets you run Kubernetes pods based on Azure Container Instances instead of full virtual machines (VMs). This means you can seamlessly run containers on serverless resources, without managing the underlying VMs.
Learn more in our detailed guides to:
EKS provides integration with Fargate, Amazon's serverless container platform. Similar to the Virtual Node feature in AKS, this option allows you to run pods as container instances instead of full VMs. However, Fargate requires the use of Amazon's Application Load Balancer (ALB), while the Azure Virtual Node implementation does not require a specific load balancer.
AKS makes it simple to create a Kubernetes cluster. The AKS CLI allows you to create, upgrade, or delete a cluster with a single command.
EKS offers a different process that typically involves several steps. It requires you to configure a web console, as well as other aspects of the cluster. For example, connecting worker nodes to the cluster via kubectl. This process can create a bottleneck if you need to create clusters on demand. However, the community has built solutions for automating these activities, most notably eksctl.
Related content: Read our guide to AWS EKS architecture
Both EKS and AKS can run 100 clusters in each region. Nodes are distributed across node pools and each node pool can run 100 nodes. Also, each node can run multiple pods.
EKS offers better quota limits, perhaps due to Amazon’s more extensive data center infrastructure:
- EKS allows 3,000 nodes per cluster, while AKS allows only 1,000 nodes per cluster.
- EKS limits managed node groups per cluster to 30, while the AKS limit is 10.
- EKS allows a maximum of 737 pods per node, whereas AKS allows only 250 pods per node.
Networking and Security
In AKS, network policies must be enabled when creating a cluster. It also provides additional policy management capabilities through the Azure Policy service.
EKS provides two network policy options depending on the cluster network type, but support is only available when the cluster is created. EKS guarantees support for pod security policies using default permissive policies. EKS requires customers to install and manage Calico CNI, which improves network security.
Both services are deployed using Kubernetes RBAC by default, which maintains core Kubernetes security standards across all clusters.
EKS and AKS Storage with Cloud Volumes ONTAP
NetApp Cloud Volumes ONTAP, the leading enterprise-grade storage management solution, delivers secure, proven storage management services on AWS, Azure and Google Cloud. Cloud Volumes ONTAP capacity can scale into the petabytes, and it supports various use cases such as file services, databases, DevOps or any other enterprise workload, with a strong set of features including high availability, data protection, storage efficiencies, Kubernetes integration, and more.
In particular, Cloud Volumes ONTAP supports Kubernetes Persistent Volume provisioning and management requirements of containerized workloads.
Learn more about how Cloud Volumes ONTAP helps to address the challenges of containerized applications in these Kubernetes Workloads with Cloud Volumes ONTAP Case Studies.