Azure Kubernetes 服务 (AKS) 群集管理的免费、标准和高级定价层

使用 AKS 定价层管理 Azure Kubernetes 服务 (AKS) 群集。 本文介绍这些层之间的差异、何时使用每个层,以及如何使用 Azure CLI 创建或更新 AKS 群集。

关于 AKS 定价层

AKS 提供三个定价层用于群集管理: 免费层标准层高级层

AKS 定价层比较

下表比较了 AKS 群集管理的免费、标准和高级定价层:

何时使用 支持的群集类型 Pricing 功能对比
免费 • 开发/测试环境。
• 学习和评估方案。
• 非生产工作负荷。
• 开发群集或小规模测试环境。
• 节点少于 10 的群集。
• 免费群集管理。
• 您使用的资源的标准预付费优惠。
• 对于少于 10 个节点的群集,建议最多支持 1,000 个节点。
• 包括所有当前的 AKS 功能。
标准 • 需要 API 服务器 99.9-99.95% 运行时间的生产工作负载。
• 需要财务服务级别协议(SLA)覆盖范围的工作负荷。
• 自动化 SKU 群集的默认级别。

• 企业级或生产工作负荷。
• 最多包含 5,000 个节点的群集。
• 您使用的资源的标准预付款方案。
标准层群集管理定价详细信息
• 默认情况下启用运行时间 SLA。
• 提高群集可靠性。
• 支持群集中最多 5,000 个节点。
• 包括所有当前的 AKS 功能。
高级 • 需要 API 服务器 99.9-99.95% 运行时间的生产工作负载。
• 需要 24 个月的 长期支持 (LTS) Kubernetes 版本支持的工作负载。
• 需要扩展维护的受监管环境。
• 企业级或生产工作负荷。
• 最多包含 5,000 个节点的群集。
• 使用的资源的标准预付费套餐。
高级层群集管理定价详细信息
• 包括所有当前的 AKS 功能。
Microsoft维护过去的社区支持

可用性SLA服务条款

标准层和高级层默认包括正常运行时间服务级别协议:

  • 使用可用性区域:Kubernetes API 服务器的 99.95% 可用性
  • 没有可用性区域:99.9% Kubernetes API 服务器的可用性
  • 免费层:尽力保证运行时间(无 SLA 保证)

有关详细信息,请参阅 SLA

区域可用性

下表概述了按区域列出的 AKS 定价层的可用性:

区域类型 可用定价层
支持 AKS 的公共区域和 Azure 中国云区域。
支持 AKS 的所有公共区域中的专用 AKS 群集 - 免费层
- 标准层
- 高级层

先决条件

  • 需要 Azure CLI 2.47.0 或更高版本。 使用 az --version 命令查找当前版本。 如果需要进行安装或升级,请参阅安装 Azure CLI
  • 可以在现有资源组中创建群集或创建新资源组。 要了解有关资源组及其使用方法的详细信息,请参阅使用 Azure CLI 管理资源组

创建资源组

  • 使用 az group create 命令创建资源组。

    # 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
    

    结果:

    {
      "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"
    }
    

在免费层中创建 AKS 群集

  • 在免费层中,使用az aks create命令,参数设置为--tier,来创建 AKS 群集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
    

    结果:

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

在标准层中创建 AKS 群集

  • 使用 az aks create 命令并将参数设置为 --tier,在标准层创建一个 AKS 群集。

    # 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
    

    结果:

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

在高级层中创建 AKS 群集

重要

在高级层中创建群集时,还必须通过将参数设置为--k8s-support-plan来启用AKSLongTermSupport。 应同时启用/禁用 LTS 和高级层。

  • 使用az aks create命令在高级层中创建 AKS 群集,--tier 参数设置为 premium--k8s-support-plan 参数设置为 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
    

    结果:

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

将现有群集从标准层更新为免费层

  • 使用az aks update命令,并将--tier参数设置为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
    

    结果:

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

将现有群集从免费层更新为标准层

  • 使用命令az aks update和参数--tier设置为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
    

    结果:

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

将现有群集更新到高级层或从高级层更新

重要

将现有群集更新到高级层或从高级层更新 需要更改支持计划。

将现有群集更新到高级层

  • 使用az aks update命令,将参数--tier设置为premium,并将参数--k8s-support-plan设置为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
    

    结果:

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

将现有群集从高级层更新为免费层或标准层

  • 使用az aks update命令,并将--tier参数设置为freestandard,将--k8s-support-plan参数设置为KubernetesOfficial,将现有群集从高级层更新为免费层或标准层。 以下示例演示如何更新到免费层。

    # 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
    

    结果:

    {
      ...
      "sku": {
        "name": "Base",
        "tier": "Free"
      },
      "supportPlan": "KubernetesOfficial",
      ...
    }
    
  • 使用可用性区域增加 AKS 群集工作负载的高可用性。
  • 限制 AKS 群集上的出口流量以满足安全性和符合性要求。