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 moins 1.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 et kubelogin en utilisant la commande az 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.

  1. 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}
    
  2. 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"
    }
    
  3. 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>
    

Étapes suivantes