快速入门:使用 Azure CLI 创建 Azure Kubernetes Fleet Manager 并加入成员群集

适用于: ✔️车队经理 ✔️中心群集的车队经理

通过 Azure CLI 创建 Fleet Manager 并加入 支持的 Kubernetes 群集 作为成员,开始使用 Azure Kubernetes 机队管理器。

Fleet Manager 支持用于智能 Kubernetes 资源放置的可选中心群集,并且需要使用 托管机群命名空间

有关机群管理器配置的详细信息,请参阅 机群类型的概念性概述

在您开始之前

如果没有 Azure 试用版订阅,请在开始前创建一个试用版订阅

  • 阅读 机群管理器的概念性概述,其中提供了本文档中引用的机队和成员群集的说明。

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

  • 一个具有活动订阅的 Azure 帐户。 创建帐户

  • 具有以下权限的标识(用户或服务主体):

    • 车队经理:
      • Microsoft.ContainerService/fleets/read
      • Microsoft.ContainerService/fleets/write
      • Microsoft.ContainerService/fleets/members/read
      • Microsoft.ContainerService/fleets/members/write
      • Microsoft 容器服务/舰队成员资格/读取
      • Microsoft.ContainerService/fleetMemberships/write
    • AKS 成员群集:
      • Microsoft.ContainerService/managedClusters/read
      • Microsoft.ContainerService/managedClusters/write
      • Microsoft.ContainerService/managedClusters/listClusterUserCredential/action
    • 已启用 Arc 的 Kubernetes 成员群集:
      • Microsoft.Kubernetes/connectedClusters/read
      • Microsoft.KubernetesConfiguration/extensions/read
      • Microsoft.KubernetesConfiguration/extensions/write
      • Microsoft.KubernetesConfiguration/extensions/delete
  • 安装 Azure CLI 2.82.0 或更高版本。 若要安装或升级,请参阅安装 Azure CLI

  • 还需要 fleet Azure CLI 扩展版本 1.8.3 或更高版本,可以通过运行以下命令进行安装:

    az extension add --name fleet
    

    运行以下命令以更新到已发布的最新扩展版本:

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

    export SUBSCRIPTION_ID=<subscription_id>
    export GROUP=<resource_group_name>
    export FLEET=<fleet_name>
    export LOCATION=<azure_region_name>
    
  • 使用kubectl命令安装az aks install-cli

    az aks install-cli
    
  • 成员群集必须运行支持的版本:请参阅 AKS 群集版本支持策略已启用 Azure Arc 的 Kubernetes 验证

创建资源组

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

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

没有中心集群的车队管理器

如果只想将 Fleet Manager 用于安全的多群集 Kubernetes 或节点映像更新,则可以使用 az fleet create 命令创建不带中心群集的 Fleet Manager。

重要

可以将不带中心群集的 Fleet Manager 更改为具有中心群集的 Fleet Manager,但不能反过来变更。

az fleet create \
    --resource-group ${GROUP} \
    --name ${FLEET} \
    --location ${LOCATION} \
    --enable-managed-identity

具有公共集线群集的机群管理器

如果要使用舰队管理器进行智能 Kubernetes 对象放置和多群集负载均衡以及 Kubernetes 和节点映像更新编排,则必须通过使用 --enable-hub 命令指定 az fleet create 参数来创建启用了中心群集的舰队管理器。

Fleet Manager 中心群集支持公共模式和专用模式进行网络访问。 有关详细信息,请参阅 “选择 Azure Kubernetes Fleet Manager”选项

注意

默认情况下,Fleet Manager 中心群集是公共群集。 机队管理器选择用于中心节点的虚拟机SKU(目前,机队管理器会按顺序尝试“Standard_D4s_v4”、“Standard_D4s_v3”、“Standard_D4s_v5”、“Standard_Ds3_v2”、“Standard_E4as_v4”)。 如果这些选项均不能接受或均不可用,可以通过设置 --vm-size <SKU> 来选择 VM SKU。

要使用集群中心创建公共车队经理,请使用az fleet create命令并设置--enable-hub标志。

重要

配置中心群集后,无法更改中心群集的类型(公共或专用)。

az fleet create \
    --resource-group ${GROUP} \
    --name ${FLEET} \
    --location ${LOCATION}  \
    --enable-hub \
    --enable-managed-identity

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

加入成员群集

Fleet Manager 支持将现有的 AKS 群集或已启用 Arc 的 Kubernetes 群集(预览版)加入为成员群集。

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

    export MEMBER_NAME_1=flt-member-cluster-1
    
    # For an AKS cluster
    export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/managedClusters/${MEMBER_NAME_1}
    
    # For an Arc-enabled cluster
    export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.Kubernetes/connectedClusters/${MEMBER_NAME_1}
    
  2. 使用 az fleet member create 命令将现有群集加入机群管理器。

    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>
    

后续步骤