快速入门:使用 Azure CLI 创建 Azure Kubernetes 舰队管理器资源并加入成员群集
开始使用 Azure Kubernetes 舰队管理器(舰队),方法是使用 Azure CLI 创建舰队资源,稍后将 Azure Kubernetes 服务 (AKS) 群集作为成员群集进行连接。
先决条件
如果没有 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.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
命令安装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 群集分组为成员群集。 通过 Azure CLI 创建时,默认情况下,此资源会启用成员群集分组和更新业务流程。 如果启用了舰队中心,则会启用其他预览版功能,例如,到成员群集的 Kubernetes 对象传播,以及跨多个成员群集的 L4 服务负载均衡。 有关详细信息,请参阅舰队类型的概念性概述,其中比较了不同的舰队配置。
重要
创建 Kubernetes 舰队资源后,可以将不含中心群集的 Kubernetes 舰队资源升级到含有中心群集的资源。 对于含有中心群集的 Kubernetes 舰队资源,选择专用或公共后,将无法进行更改。
如果只想将舰队用于更新业务流程(这是通过 Azure CLI 创建新舰队资源时的默认体验),则可以使用 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"
}
加入成员群集
舰队当前支持将现有 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>