Démarrage rapide : créer une ressource Azure Kubernetes Fleet Manager et joindre des clusters membres en utilisant l’interface Azure CLI
Prise en main d’Azure Kubernetes Fleet Manager (Fleet) à l’aide d’Azure CLI pour créer une ressource Fleet et connecter ultérieurement des clusters Azure Kubernetes Service (AKS) en tant que clusters membres.
Prérequis
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Lisez la vue d’ensemble des concepts de cette fonctionnalité, qui fournit une explication des flottes et des groupes de membres mentionnés dans ce document.
Compte Azure avec un abonnement actif. Créez un compte gratuitement.
Une identité (utilisateur ou principal de service) qui peut être utilisée pour se connecter à Azure CLI. Cette identité doit disposer des autorisations suivantes sur les types de ressources Fleet et AKS pour effectuer les étapes répertoriées dans ce démarrage rapide :
- 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
Installez ou mettez à niveau l’interface Azure CLI vers une version
2.53.1
ou ultérieure.Installez l’extension Azure CLI de flotte en utilisant la commande
az extension add
et vérifiez que votre version est au moins1.0.0
.az extension add --name fleet
Définissez les variables d’environnement suivantes :
export SUBSCRIPTION_ID=<subscription_id> export GROUP=<your_resource_group_name> export FLEET=<your_fleet_name>
Installez
kubectl
etkubelogin
en utilisant la commandeaz aks install-cli
.az aks install-cli
Les clusters AKS que vous souhaitez joindre en tant que clusters membres à la ressource Flotte doivent se trouver dans les versions prises en charge d’AKS. En savoir plus sur la stratégie de prise en charge des versions AKS ici.
Créer un groupe de ressources
Un groupe de ressources Azure est un groupe logique dans lequel des ressources Azure sont déployées et gérées. Lorsque vous créez un groupe de ressources, vous êtes invité à spécifier un emplacement. Cet emplacement est l'emplacement de stockage des métadonnées de votre groupe de ressources et l'endroit où vos ressources s'exécutent dans Azure si vous ne spécifiez pas un autre emplacement lors de la création de la ressource.
Définissez l’abonnement Azure et créez un groupe de ressources en tirant parti de la commande az group create
.
az account set -s ${SUBSCRIPTION_ID}
az group create --name ${GROUP} --location eastus
L’exemple de sortie suivant montre la création réussie du groupe de ressources :
{
"id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo",
"location": "eastus",
"managedBy": null,
"name": "fleet-demo",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Créer une ressource Fleet
Vous pouvez créer une ressource Flotte pour regrouper ultérieurement vos clusters AKS en tant que clusters membres. Cette ressource active par défaut le regroupement de clusters membres et met à jour l’orchestration. Si le hub Flotte est activé, d’autres fonctionnalités d’évaluation sont activées, telles que la propagation d'objets Kubernetes vers les clusters membres et l'équilibrage de la charge des services L4 sur plusieurs clusters membres.
Important
Pour le moment, notez qu’après la création d’une ressource de flotte, il n’est pas possible de changer le mode du hub pour cette ressource.
Option 1 : créer une Flotte sans cluster de flotte
Si vous voulez utiliser Flotte uniquement pour l’orchestration des mises à jour qui est l’expérience par défaut lors d’une création de ressource Flotte, vous pouvez créer une ressource Flotte sans cluster hub en utilisant la commande az fleet create
. Pour obtenir plus d’informations, consultez Qu’est-ce qu’un cluster hub (préversion) ?.
az fleet create --resource-group ${GROUP} --name ${FLEET} --location eastus
Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :
{
"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": "eastus",
"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"
}
Option 2 : créer une Flotte sans cluster hub
Si vous souhaitez utiliser Flotte pour la propagation d’objets Kubernetes et l’équilibrage de charge multi-cluster en plus de l’orchestration des mises à jour, vous devez créer la ressource Flotte avec le cluster hub activé en spécifiant le paramètre --enable-hub
avec la commande az fleet create
.
az fleet create --resource-group ${GROUP} --name ${FLEET} --location eastus --enable-hub
Votre sortie devrait ressembler à l’exemple de sortie de la section précédente.
Joindre des clusters membres
Fleet prend actuellement en charge la jointure de clusters AKS existants en tant que clusters membres.
Définissez les variables d’environnement suivantes pour les clusters membres :
export MEMBER_NAME_1=aks-member-1 export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/managedClusters/${MEMBER_NAME_1}
Joignez vos clusters AKS existants à la ressource Flotte en utilisant la commande
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}
Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :
{ "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" }
Vérifiez que vous avez correctement joint les clusters membres à la ressource Flotte en tirant parti de la commande
az fleet member list
.az fleet member list --resource-group ${GROUP} --fleet-name ${FLEET} -o table
Si c’est le cas, vous devez obtenir un résultat semblable à l’exemple de sortie suivant :
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>