Edit

Share via


Free, Standard, and Premium pricing tiers for Azure Kubernetes Service (AKS) cluster management

Manage your Azure Kubernetes Service (AKS) clusters using AKS pricing tiers. This article explains the differences between these tiers, when to use each tier, and how to create or update AKS clusters using Azure CLI.

About AKS pricing tiers

AKS offers three pricing tiers for cluster management: the Free tier, the Standard tier, and the Premium tier.

SKU and tier relationship:

  • Base SKU clusters: Can use any of the three pricing tiers (Free, Standard, or Premium).
  • Automatic SKU clusters: Must use the Standard tier (automatically selected during cluster creation).

AKS pricing tiers comparison

The following table compares the Free, Standard, and Premium pricing tiers for AKS cluster management:

Tier When to use Supported cluster types Pricing Feature comparison
Free • Development/testing environments.
• Learning and evaluation scenarios.
• Non-production workloads.
• Development clusters or small scale testing environments.
• Clusters with fewer than 10 nodes.
• Free cluster management.
• Pay-as-you-go for resources you consume.
• Recommended for clusters with fewer than 10 nodes, but can support up to 1,000 nodes.
• Includes all current AKS features.
Standard • Production workloads requiring 99.9-99.95% API server uptime.
• Workloads needing financial service level agreement (SLA) coverage.
• Default tier for Automatic SKU clusters.

• Enterprise-grade or production workloads.
• Clusters with up to 5,000 nodes.
• Pay-as-you-go for resources you consume.
Standard tier cluster management pricing details.
• Uptime SLA is enabled by default.
• Greater cluster reliability.
• Supports up to 5,000 nodes in a cluster.
• Includes all current AKS features.
Premium • Production workloads requiring 99.9-99.95% API server uptime.
• Workloads requiring 24-month Long Term Support (LTS) Kubernetes version support.
• Regulated environments requiring extended maintenance.
• Enterprise-grade or production workloads.
• Clusters with up to 5,000 nodes.
• Pay-as-you-go for resources you consume.
Premium tier cluster management pricing details.
• Includes all current AKS features.
Microsoft maintenance past community support.

Uptime SLA terms and conditions

Standard and Premium tiers include Uptime SLA by default:

  • With availability zones: 99.95% availability of the Kubernetes API server
  • Without availability zones: 99.9% availability of the Kubernetes API server
  • Free tier: Best-effort uptime (no SLA guarantee)

For more information, see the SLA.

Region availability

The following tables outline the availability of AKS pricing tiers by region:

Region type Available pricing tiers
Public regions and Azure Government regions where AKS is supported - Free tier
- Standard tier
- Premium tier
Private AKS clusters in all public regions where AKS is supported - Free tier
- Standard tier
- Premium tier

Prerequisites

Create a resource group

  • Create a resource group using the az group create command.

    # Set environment variables
    export REGION=<your-region>
    export RESOURCE_GROUP=<your-resource-group-name>
    
    # Create the resource group
    az group create --name $RESOURCE_GROUP --location $REGION
    

    Results:

    {
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/"<your-resource-group-name>",
      "location": "<your-region>",
      "managedBy": null,
      "name": "<your-resource-group-name>",
      "properties": {
        "provisioningState": "Succeeded"
      },
      "tags": null,
      "type": "Microsoft.Resources/resourceGroups"
    }
    

Create an AKS cluster in the Free tier

  • Create an AKS cluster in the Free tier using the az aks create command with the --tier parameter set to free.

    # Set environment variables
    export RESOURCE_GROUP=<your-resource-group-name>
    export CLUSTER_NAME=<your-aks-cluster-name>
    
    # Create the AKS cluster
    az aks create \
        --resource-group $RESOURCE_GROUP \
        --name $CLUSTER_NAME \
        --tier free \
        --generate-ssh-keys
    

    Results:

    {
      ...
      "sku": {
        "name": "Base",
        "tier": "Free"
      },
      ...
    }
    

Create an AKS cluster in the Standard tier

  • Create an AKS cluster in the Standard tier using the az aks create command with the --tier parameter set to standard.

    # Set environment variables
    export RESOURCE_GROUP=<your-resource-group-name>
    export CLUSTER_NAME=<your-aks-cluster-name>
    
    # Create the AKS cluster
    az aks create \
        --resource-group $RESOURCE_GROUP \
        --name $CLUSTER_NAME \
        --tier standard \
        --generate-ssh-keys
    

    Results:

    {
      ...
      "sku": {
        "name": "Base",
        "tier": "Standard"
      },
      ...
    }
    

Create an AKS cluster in the Premium tier

Important

When creating a cluster in the Premium tier, you must also enable the LTS plan by setting the --k8s-support-plan parameter to AKSLongTermSupport. You should enable/disable LTS and the Premium tier together.

  • Create an AKS cluster in the Premium tier using the az aks create command with the --tier parameter set to premium and the --k8s-support-plan parameter set to AKSLongTermSupport.

    # Set environment variables
    export RESOURCE_GROUP=<your-resource-group-name>
    export CLUSTER_NAME=<your-aks-cluster-name>
    
    # Create the AKS cluster
    az aks create \
        --resource-group $RESOURCE_GROUP \
        --name $CLUSTER_NAME \
        --tier premium \
        --k8s-support-plan AKSLongTermSupport \
        --generate-ssh-keys
    

    Results:

    {
      ...
      "sku": {
        "name": "Base",
        "tier": "Premium"
      },
      "supportPlan": "AKSLongTermSupport",
      ...
    }
    

Update an existing cluster from the Standard tier to the Free tier

  • Update an existing cluster from the Standard tier to the Free tier using the az aks update command with the --tier parameter set to free.

    # Set environment variables
    export RESOURCE_GROUP=<your-resource-group-name>
    export CLUSTER_NAME=<your-aks-cluster-name>
    
    # Update the AKS cluster
    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --tier free
    

    Results:

    {
      ...
      "sku": {
        "name": "Base",
        "tier": "Free"
      },
      ...
    }
    

Update an existing cluster from the Free tier to the Standard tier

  • Update an existing cluster from the Free tier to the Standard tier using the az aks update command with the --tier parameter set to standard.

    # Set environment variables
    export RESOURCE_GROUP=<your-resource-group-name>
    export CLUSTER_NAME=<your-aks-cluster-name>
    
    # Update the AKS cluster
    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --tier standard
    

    Results:

    {
      ...
      "sku": {
        "name": "Base",
        "tier": "Standard"
      },
      ...
    }
    

Update an existing cluster to or from the Premium tier

Important

Updating existing clusters to or from the Premium tier requires changing the support plan.

Update an existing cluster to the Premium tier

  • Update an existing cluster to the Premium tier using the az aks update command with the --tier parameter set to premium and the --k8s-support-plan parameter set to AKSLongTermSupport.

    # Set environment variables
    export RESOURCE_GROUP=<your-resource-group-name>
    export CLUSTER_NAME=<your-aks-cluster-name>
    
    # Update the AKS cluster
    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --tier premium --k8s-support-plan AKSLongTermSupport
    

    Results:

    {
      ...
      "sku": {
        "name": "Base",
        "tier": "Premium"
      },
      "supportPlan": "AKSLongTermSupport",
      ...
    }
    

Update an existing cluster from the Premium tier to the Free or Standard tier

  • Update an existing cluster from the Premium tier to the Free or Standard tier using the az aks update command with the --tier parameter set to free or standard and the --k8s-support-plan parameter set to KubernetesOfficial. The following example shows updating to the Free tier.

    # Set environment variables
    export RESOURCE_GROUP=<your-resource-group-name>
    export CLUSTER_NAME=<your-aks-cluster-name>
    
    # Update the AKS cluster
    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --tier free --k8s-support-plan KubernetesOfficial
    

    Results:

    {
      ...
      "sku": {
        "name": "Base",
        "tier": "Free"
      },
      "supportPlan": "KubernetesOfficial",
      ...
    }
    

Update an existing cluster from the Base SKU to the Automatic SKU

Important

Make sure all the AKS Automatic features are enabled on your cluster before updating.

  • Update an existing cluster from the Base SKU to the Automatic SKU using the az aks update command with the --sku parameter set to Automatic.

    # Set environment variables
    export RESOURCE_GROUP=<your-resource-group-name>
    export CLUSTER_NAME=<your-aks-cluster-name>
    
    # Update the AKS cluster
    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --sku Automatic
    

    Results:

    {
      ...
      "sku": {
        "name": "Automatic",
        "tier": "Standard"
      },
      ...
    }
    

Update an existing cluster from the Automatic SKU to the Base SKU

  • Update an existing cluster from the Automatic SKU to the Base SKU using the az aks update command with the --sku parameter set to Base.

    # Set environment variables
    export RESOURCE_GROUP=<your-resource-group-name>
    export CLUSTER_NAME=<your-aks-cluster-name>
    
    # Update the AKS cluster
    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --sku Base
    

    Results:

    {
      ...
      "sku": {
        "name": "Base",
        "tier": "Standard"
      },
      ...
    }