你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
通过 Azure CLI 创建 Fleet Manager 并将 Azure Kubernetes 服务 (AKS) 群集加入为成员群集,开始使用 Azure Kubernetes 机群管理器。
先决条件
如果没有 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 CLI 2.70.0 或更高版本。 若要安装或升级,请参阅安装 Azure CLI。
还需要
fleet
Azure CLI 扩展版本 1.5.0 或更高版本,可以通过运行以下命令进行安装:az extension add --name fleet
运行以下命令以更新到已发布的最新扩展版本:
az extension update --name fleet
设置以下环境变量:
export SUBSCRIPTION_ID=<subscription_id> export GROUP=<your_resource_group_name> export FLEET=<your_fleet_name> export LOCATION=<azure-region-name>
使用
kubectl
命令安装az aks install-cli
。az aks install-cli
要作为成员群集加入的 AKS 群集需要运行 AKS 支持的 Kubernetes 版本。 请在此处详细了解 AKS 版本支持策略。
创建资源组
Azure 资源组是用于部署和管理 Azure 资源的逻辑组。 创建资源组时,系统会提示你指定一个位置。 此位置是资源组元数据的存储位置,也是资源在 Azure 中运行的位置(如果你在创建资源期间未指定其他位置)。
设置 Azure 订阅并使用 az group create
命令创建资源组。
az account set -s ${SUBSCRIPTION_ID}
az group create --name ${GROUP} --___location ${LOCATION}
以下输出示例类似于成功创建资源组:
{
"id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo",
"___location": "<LOCATION>",
"managedBy": null,
"name": "fleet-demo",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
创建车队管理器资源
可以随时创建机群管理器,选择以后将 AKS 群集添加为成员群集。 默认情况下,通过 Azure CLI 创建时,Fleet Manager 会启用成员集群分组和更新协调。 如果使用中心群集创建 Fleet Manager,则有可能跨多个成员群集进行智能 Kubernetes 对象放置和负载均衡。 有关详细信息,请参阅舰队类型的概念性概述,其中比较了不同的舰队配置。
重要
可以将不带中心群集的 Fleet Manager 更改为具有中心群集的 Fleet Manager,但不能反过来变更。 对于具有中心群集的机队经理,选择专用或公共访问后,便无法更改。
如果只想将 Fleet Manager 用于 Kubernetes 或节点映像更新的协调工作,可以使用 az fleet create
命令创建不包含中心群集的 Fleet 资源。
az fleet create \
--resource-group ${GROUP} \
--name ${FLEET} \
--___location ${LOCATION} \
--enable-managed-identity
输出应类似于以下示例输出:
{
"etag": "...",
"hubProfile": null,
"id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo/providers/Microsoft.ContainerService/fleets/fleet-demo",
"identity": {
"principalId": <system-identity-id>,
"tenantId": <entra-tenant-id>,
"type": "SystemAssigned",
"userAssignedIdentities": null
},
"___location": "<LOCATION>",
"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 群集作为成员群集加入。
为成员群集设置以下环境变量:
export MEMBER_NAME_1=aks-member-1 export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/managedClusters/${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>