适用于: ✔️车队经理 ✔️中心群集的车队经理
通过 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。
还需要
fleetAzure 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 群集(预览版)加入为成员群集。
为成员群集设置以下环境变量:
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}使用
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" }使用
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>