你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 Azure CLI 创建 Azure Kubernetes 舰队管理器资源并加入成员群集

开始使用 Azure Kubernetes 舰队管理器(舰队),方法是使用 Azure CLI 创建舰队资源,稍后将 Azure Kubernetes 服务 (AKS) 群集作为成员群集进行连接。

先决条件

如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户

  • 阅读有关此功能的概念性概述,其中提供了有关本文档中引用的舰队和成员群集的说明。

  • 阅读舰队类型的概念性概述,其中比较了不同的舰队配置选项。

  • 具有活动订阅的 Azure 帐户。 免费创建帐户

  • 标识(用户或服务主体),可用于登录到 Azure CLI。 此标识需要对舰队和 AKS 资源类型具有以下权限,才能完成本快速入门中列出的步骤:

    • Microsoft.ContainerService/fleets/read
    • Microsoft.ContainerService/fleets/write
    • Microsoft.ContainerService/fleets/members/read
    • Microsoft.ContainerService/fleets/members/write
    • Microsoft.ContainerService/fleetMemberships/read
    • Microsoft.ContainerService/fleetMemberships/write
    • Microsoft.ContainerService/managedClusters/read
    • Microsoft.ContainerService/managedClusters/write
  • 安装或升级 Azure CLI2.53.1 或更高版本。

  • 使用 az extension add 命令安装舰队 Azure CLI 扩展并确保版本至少为 1.0.0

    az extension add --name fleet
    
  • 设置以下环境变量:

    export SUBSCRIPTION_ID=<subscription_id>
    export GROUP=<your_resource_group_name>
    export FLEET=<your_fleet_name>
    
  • 使用 az aks install-cli 命令安装 kubectlkubelogin

    az aks install-cli
    
  • 要作为成员群集加入舰队资源的 AKS 群集需要位于受支持的 AKS 版本中。 请在此处详细了解 AKS 版本支持策略。

创建资源组

Azure 资源组是用于部署和管理 Azure 资源的逻辑组。 创建资源组时,系统会提示你指定一个位置。 此位置是资源组元数据的存储位置,也是资源在 Azure 中运行的位置(如果你在创建资源期间未指定其他位置)。

设置 Azure 订阅并使用 az group create 命令创建资源组。

az account set -s ${SUBSCRIPTION_ID}
az group create --name ${GROUP} --location eastus

以下输出示例类似于成功创建资源组:

{
  "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo",
  "location": "eastus",
  "managedBy": null,
  "name": "fleet-demo",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

创建舰队资源

可以创建舰队资源,以便之后将 AKS 群集分组为成员群集。 通过 Azure CLI 创建时,默认情况下,此资源会启用成员群集分组和更新业务流程。 如果启用了舰队中心,则会启用其他预览版功能,例如,到成员群集的 Kubernetes 对象传播,以及跨多个成员群集的 L4 服务负载均衡。 有关详细信息,请参阅舰队类型的概念性概述,其中比较了不同的舰队配置。

重要

创建 Kubernetes 舰队资源后,可以将不含中心群集的 Kubernetes 舰队资源升级到含有中心群集的资源。 对于含有中心群集的 Kubernetes 舰队资源,选择专用或公共后,将无法进行更改。

如果只想将舰队用于更新业务流程(这是通过 Azure CLI 创建新舰队资源时的默认体验),则可以使用 az fleet create 命令创建不含中心群集的舰队资源。

az fleet create --resource-group ${GROUP} --name ${FLEET} --location eastus

输出应类似于以下示例输出:

{
  "etag": "...",
  "hubProfile": null,
  "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo/providers/Microsoft.ContainerService/fleets/fleet-demo",
  "identity": {
    "principalId": null,
    "tenantId": null,
    "type": "None",
    "userAssignedIdentities": null
  },
  "location": "eastus",
  "name": "fleet-demo",
  "provisioningState": "Succeeded",
  "resourceGroup": "fleet-demo",
  "systemData": {
    "createdAt": "2023-11-03T17:15:19.610149+00:00",
    "createdBy": "<user>",
    "createdByType": "User",
    "lastModifiedAt": "2023-11-03T17:15:19.610149+00:00",
    "lastModifiedBy": "<user>",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.ContainerService/fleets"
}

加入成员群集

舰队当前支持将现有 AKS 群集作为成员群集加入。

  1. 为成员群集设置以下环境变量:

    export MEMBER_NAME_1=aks-member-1
    export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/managedClusters/${MEMBER_NAME_1}
    
  2. 使用 az fleet member create 命令将现有群集加入舰队资源。

    # Join the first member cluster
    az fleet member create --resource-group ${GROUP} --fleet-name ${FLEET} --name ${MEMBER_NAME_1} --member-cluster-id ${MEMBER_CLUSTER_ID_1}
    

    输出应类似于以下示例输出:

    {
      "clusterResourceId": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-x",
      "etag": "...",
      "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/fleets/<FLEET>/members/aks-member-x",
      "name": "aks-member-1",
      "provisioningState": "Succeeded",
      "resourceGroup": "<GROUP>",
      "systemData": {
        "createdAt": "2022-10-04T19:04:56.455813+00:00",
        "createdBy": "<user>",
        "createdByType": "User",
        "lastModifiedAt": "2022-10-04T19:04:56.455813+00:00",
        "lastModifiedBy": "<user>",
        "lastModifiedByType": "User"
      },
      "type": "Microsoft.ContainerService/fleets/members"
    }
    
  3. 使用 az fleet member list 命令验证成员群集是否已成功加入舰队资源。

    az fleet member list --resource-group ${GROUP} --fleet-name ${FLEET} -o table
    

    如果成功,输出应类似于以下示例输出:

    ClusterResourceId                                                                                                                                Name          ProvisioningState    ResourceGroup
    -----------------------------------------------------------------------------------------------------------------------------------------------  ------------  -------------------  ---------------
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-1  aks-member-1  Succeeded            <GROUP>
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-2  aks-member-2  Succeeded            <GROUP>
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-3  aks-member-3  Succeeded            <GROUP>
    

后续步骤