快速入门:使用 Azure CLI 创建 Azure Kubernetes 舰队管理器资源并加入成员群集
开始使用 Azure Kubernetes 舰队管理器(舰队),方法是使用 Azure CLI 创建舰队资源,稍后将 Azure Kubernetes 服务 (AKS) 群集作为成员群集进行连接。
先决条件
阅读有关此功能的概念性概述,其中提供了有关本文档中引用的舰队和成员群集的说明。
一个 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.53.1
或更高版本。安装舰队 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
命令安装kubectl
和kubelogin
: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 chinanorth3
以下输出示例类似于成功创建资源组:
{
"id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo",
"location": "chinanorth3",
"managedBy": null,
"name": "fleet-demo",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
创建舰队资源
可以创建舰队资源,以便之后将 AKS 群集分组为成员群集。 默认情况下,此资源会启用成员群集分组和更新编排。 如果启用了舰队中心,则会启用其他预览版功能,例如,到成员群集的 Kubernetes 对象传播,以及跨多个成员群集的 L4 服务负载均衡。
重要
目前,一旦创建了舰队资源,就无法更改舰队资源的中心模式。
选项 1 - 创建无中心群集的舰队
如果只想将舰队用于更新业务流程(这是创建新舰队资源时的默认体验),则可以使用 az fleet create
命令创建不含中心群集的舰队资源。 有关详细信息,请参阅什么是中心群集(预览版)?。
az fleet create --resource-group ${GROUP} --name ${FLEET} --location chinanorth3
输出应类似于以下示例输出:
{
"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": "chinanorth3",
"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"
}
选项 2 - 创建有中心群集的舰队
如果除了更新业务流程之外,还想要将舰队用于 Kubernetes 对象传播和多群集负载均衡,则需要在使用 az fleet create
命令时指定 --enable-hub
参数,以在创建舰队资源的同时启用集线器群集:
az fleet create --resource-group ${GROUP} --name ${FLEET} --location chinanorth3 --enable-hub
输出应该类似于上一部分中的示例输出。
加入成员群集
舰队当前支持将现有 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
命令将现有群集加入舰队资源。# 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" }
使用
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>