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.

  • Lisez la vue d’ensemble conceptuelle des types de flotte, qui fournit une comparaison des différentes options de configuration de la flotte.

  • 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. Lors de la création via Azure CLI, par défaut, cette ressource active 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. Pour plus d’informations, consultez la vue d’ensemble conceptuelle des types de flotte, qui fournit une comparaison des différentes configurations de flotte.

Important

Une fois qu’une ressource Kubernetes Fleet a été créée, il est possible de mettre à niveau une ressource Kubernetes Fleet sans cluster hub vers un avec un cluster hub. Pour les ressources Kubernetes Fleet avec un cluster hub, une fois que le cluster privé ou public a été sélectionné, il ne peut pas être modifié.

Si vous voulez utiliser Fleet uniquement pour l’orchestration des mises à jour qui est l’expérience par défaut lors d’une création de ressource Fleet via Azure CLI, vous pouvez créer une ressource Fleet sans cluster hub en utilisant la commande az fleet create.

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"
}

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 les clusters membres ont correctement joint la ressource Fleet à l’aide 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