Gestionnaire de cluster : comment gérer le gestionnaire de cluster dans Operator Nexus

Le gestionnaire de cluster est déployé dans l’abonnement Azure de l’opérateur pour gérer le cycle de vie des clusters de l’infrastructure Operator Nexus.

Avant de commencer

Veillez à disposer des informations suivantes :

  • ID d’abonnement Azure : ID d’abonnement Azure où le gestionnaire de cluster doit être créé (doit être le même ID d’abonnement que le contrôleur de structure réseau).
  • ID du contrôleur de structure réseau : le contrôleur de structure réseau et le gestionnaire de cluster présentent une association individuelle. Vous avez besoin de l’ID de ressource du contrôleur de structure réseau associé au gestionnaire de cluster.
  • ID de l’espace de travail Log Analytics : ID de ressource de l’espace de travail Log Analytics utilisé pour la collection de journaux.
  • Région Azure : le gestionnaire de cluster doit être créé dans la même région Azure que le contrôleur de structure réseau. Cette région Azure doit être utilisée dans le champ Location du gestionnaire de cluster et toutes les instances Operator Nexus associées.

Limites

  • Nommage : les règles de nommage sont disponibles ici.

Arguments globaux

Certains arguments sont disponibles pour chaque commande Azure CLI.

  • --debug : imprime davantage d’informations sur les opérations CLI, utilisées pour le débogage. Si vous rencontrez un bogue, fournissez la sortie générée avec l’indicateur --debug lors de l’envoi d’un rapport de bogue.
  • --help -h : imprime les informations de référence CLI sur les commandes et leurs arguments, et répertorie les commandes et sous-groupes disponibles.
  • --only-show-errors : affiche uniquement les erreurs, en supprimant les avertissements.
  • --output -o : spécifie le format de sortie. Les formats de sortie disponibles sont Json, Jsonc (JSON colorisé), tsv (valeurs séparées par des tabulations), table (tables ASCII lisibles par l’homme) et yaml. Par défaut, l’interface CLI génère du code Json.
  • --query : utilise le langage de requête JMESPath pour filtrer la sortie retournée par les services Azure.
  • --verbose : imprime les informations sur les ressources créées dans Azure pendant une opération ainsi que diverses autres informations utiles.

Propriétés du gestionnaire de cluster

Nom de la propriété Description
Nom, ID, emplacement, balises, type Nom : nom convivial de l’utilisateur
ID : < ID de ressource >
Emplacement : région Azure où le gestionnaire de cluster est créé. Valeurs provenant de : az account list -locations.
Balises : balises de ressource
Type : Microsoft.NetworkCloud/clusterManagers
managerExtendedLocation ExtendedLocation associé au gestionnaire de cluster
managedResourceGroupConfiguration Informations sur le groupe de ressources managées
fabricControllerId Référence au contrôleur de structure réseau associé ce gestionnaire de cluster
analyticsWorkspaceId Espace de travail Log Analytics où tous les journaux pertinents pour le client sont relayés.
clusterVersions[] Liste de versions de cluster prises en charge par le gestionnaire de cluster. Elle est utilisée comme entrée dans la propriété clusterVersion.
provisioningState État d’approvisionnement de la dernière opération sur le gestionnaire de cluster. Un de ce qui suit : Échec, Annulé, Approvisionnement, Accepté, Mise à jour
detailedStatus États détaillés qui fournissent des informations supplémentaires sur l’état du gestionnaire de cluster.
detailedStatusMessage Message descriptif sur l’état détaillé actuel.

Identité du gestionnaire de cluster

À compter de la version d’API 2024-07-01, un client peut attribuer une identité managée à un gestionnaire de cluster. Les identités managées affectées par le système et affectées par l’utilisateur sont prises en charge.

Si vous créez un gestionnaire de cluster avec l’identité managée affectée par l’utilisateur, un client doit approvisionner l’accès à cette identité pour la plateforme Nexus. Plus particulièrement, l’autorisation Microsoft.ManagedIdentity/userAssignedIdentities/assign/action doit être ajoutée à l’identité affectée par l’utilisateur pour Microsoft Entra ID AFOI-NC-MGMT-PME-PROD. Il s’agit d’une limitation connue de la plateforme qui sera résolue à l’avenir.

L’attribution de rôle peut être effectuée via le Portail Azure :

  • Ouvrez le Portail Azure et recherchez l’identité affectée par l’utilisateur en question.
    • Si vous attendez plusieurs identités managées approvisionnées, vous pouvez ajouter le rôle au niveau de l’abonnement ou du groupe de ressources.
  • Sous Access control (IAM), cliquez sur Ajouter une attribution de rôle
  • Sélectionner un rôle : Managed Identity Operator Consultez les autorisations attribuées par le rôle.
  • Attribuer l’accès à : Utilisateur, groupe ou principal de service
  • Sélectionner un membre : application AFOI-NC-MGMT-PME-PROD
  • Examiner et affecter

Créer un gestionnaire de cluster

Créez le gestionnaire de cluster en utilisant l’interface Azure CLI :

Utilisez la commande az networkcloud clustermanager create pour créer un gestionnaire de cluster. Cette commande crée un gestionnaire de cluster ou met à jour les propriétés du gestionnaire de cluster s’il existe. Si vous avez plusieurs abonnements Azure, sélectionnez l’ID d’abonnement approprié à l’aide de la commande az account set.

az networkcloud clustermanager create \
    --name "$CLUSTER_MANAGER_NAME" \
    --location "$LOCATION" \
    --analytics-workspace-id "$LAW_NAME" \
    --fabric-controller-id "$NFC_ID" \
    --managed-resource-group-configuration name="$MRG_NAME" location="$MRG_LOCATION" \
    --tags $TAG_KEY1="$TAG_VALUE1" $TAG_KEY2="$TAG_VALUE2"
    --resource-group "$CLUSTER_MANAGER_RG"
    --subscription "$SUB_ID"
  • Arguments
    • --name -n [Obligatoire] : nom du gestionnaire de cluster.
    • --fabric-controller-id [Obligatoire] : ID de ressource du contrôleur de structure réseau associé au gestionnaire de cluster.
    • --resource-group -g [Obligatoire] : nom du groupe de ressources. Vous pouvez configurer le groupe de ressources par défaut en utilisant az configure --defaults group=<name>.
    • --analytics-workspace-id : ID de ressource de l’espace de travail Log Analytics utilisé pour la collection de journaux
    • --location -l : emplacement. Région Azure où le gestionnaire de cluster est créé. Valeurs provenant de : az account list -locations. Vous pouvez configurer le lieu par défaut en utilisant az configure --defaults location="$LOCATION".
    • --managed-resource-group-configuration : configuration du groupe de ressources managées associé à la ressource.
      • Utilisation : --managed-resource-group-configuration location=XX name=XX
      • location : région du groupe de ressources managées. Si elle n’est pas spécifiée, la région de la ressource parente est choisie.
      • name : nom du groupe de ressources managées. S’il n’est pas spécifié, le nom du groupe est généré automatiquement.
    • wait/-no-wait : attendre la fin de la commande ou ne pas attendre la fin de l’opération de longue durée.
    • --tags : étiquettes séparées par des espaces : clé[=valeur] [clé[=valeur]...]. Utiliser '' pour effacer les balises existantes
    • --subscription : nom ou ID de l’abonnement. Vous pouvez configurer l’abonnement par défaut en utilisant az account set -s NAME_OR_ID.
    • --mi-system-assigned : activez l’identité managée affectée par le système. Une fois ajoutée, l’identité peut uniquement être supprimée via l’appel d’API pour le moment.
    • --mi-user-assigned : les ID de ressource séparés par des espaces des identités managées par l’utilisateur à ajouter. Une fois ajoutée, l’identité peut uniquement être supprimée via l’appel d’API pour le moment.

Créez le gestionnaire de cluster à l’aide de l’éditeur de modèle Azure Resource Manager :

Une autre façon de créer un gestionnaire de cluster est avec l’éditeur de modèle ARM.

Pour créer le cluster de cette façon, vous devez fournir un fichier de modèle (clusterManager.jsonc) et un fichier de paramètres (clusterManager.parameters.jsonc).

Vous trouverez des exemples de ces deux fichiers ici :

clusterManager.jsonc, clusterManager.parameters.jsonc

Remarque

Pour obtenir la mise en forme correcte, copiez le fichier de code brut. Les valeurs du fichier clusterManager.parameters.jsonc sont spécifiques au client et peuvent ne pas constituer une liste exhaustive. Veuillez mettre à jour les champs de valeurs en fonction de votre environnement.

  1. Dans un navigateur web, accédez au portail Azure et connectez-vous à votre compte.
  2. Dans la barre de recherche du portail Azure, recherchez « Déployer un modèle personnalisé », puis sélectionnez cette option parmi les services disponibles.
  3. Cliquez sur Créer votre propre modèle dans l’éditeur.
  4. Cliquez sur Charger le fichier. Recherchez votre fichier de modèle clusterManager.jsonc et chargez-le.
  5. Cliquez sur Enregistrer.
  6. Cliquez sur Modifier les paramètres.
  7. Cliquez sur Charger le fichier. Recherchez votre fichier de paramètres clusterManager.parameters.jsonc et chargez-le.
  8. Cliquez sur Enregistrer.
  9. Sélectionnez l’abonnement approprié.
  10. Recherchez le groupe de ressources s’il existe déjà ou créez-en un.
  11. Vérifiez que tous les détails de l’instance sont corrects.
  12. Cliquez sur Vérifier + créer.

Répertorier/afficher le ou les gestionnaires de cluster

Les commandes list et show permettent d’obtenir la liste des gestionnaires de cluster existants ou les propriétés d’un gestionnaire de cluster spécifique.

Répertorier les gestionnaires de cluster dans le groupe de ressources

Cette commande répertorie les gestionnaires de cluster dans le groupe de ressources spécifié.

az networkcloud clustermanager list --resource-group "$CLUSTER_MANAGER_RG"

Répertorier les gestionnaires de cluster dans l’abonnement

Cette commande répertorie les gestionnaires de cluster dans l’abonnement spécifié.

az networkcloud clustermanager list  --subscription "$SUB_ID"

Afficher les propriétés du gestionnaire de cluster

Cette commande répertorie les propriétés du gestionnaire de cluster spécifié.

az networkcloud clustermanager show \
    --name "$CLUSTER_MANAGER_NAME" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"

Répertorier/afficher les arguments de commande

  • --name -n : nom du gestionnaire de cluster.
  • --IDs : un ou plusieurs ID de ressource (délimités par un espace). Il doit s’agir d’un ID de ressource complet contenant toutes les informations des arguments « ID de ressource ».
  • --resource-group-g : nom du groupe de ressources. Vous pouvez configurer le groupe par défaut en utilisant az configure --defaults group=<name>.
  • --subscription : nom ou ID de l’abonnement. Vous pouvez configurer l’abonnement par défaut en utilisant az account set -s NAME_OR_ID.

Mettre à jour le gestionnaire de cluster

Cette commande est utilisée pour corriger les propriétés du gestionnaire de cluster fourni ou mettre à jour les balises affectées au gestionnaire de cluster. Les propriétés et les mises à jour des balises peuvent être effectuées indépendamment.

az networkcloud clustermanager update \
    --name "$CLUSTER_MANAGER_NAME" \
    --tags $TAG_KEY1="$TAG_VALUE1" $TAG_KEY2="$TAG_VALUE2" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"
  • Arguments
    • --tags : liste d’étiquettes séparées par des espaces : clé[=valeur] [clé[=valeur] ...]. Utilisez '' pour effacer des balises existantes.
    • --name -n : nom du gestionnaire de cluster.
    • --IDs : un ou plusieurs ID de ressource (délimités par un espace). Il doit s’agir d’un ID de ressource complet contenant toutes les informations des arguments « ID de ressource ».
    • --resource-group-g : nom du groupe de ressources. Vous pouvez configurer le groupe par défaut en utilisant az configure --defaults group=<name>.
    • --subscription : nom ou ID de l’abonnement. Vous pouvez configurer l’abonnement par défaut en utilisant az account set -s NAME_OR_ID.
    • --mi-system-assigned : activez l’identité managée affectée par le système. Une fois ajoutée, l’identité peut uniquement être supprimée via l’appel d’API pour le moment.
    • --mi-user-assigned : les ID de ressource séparés par des espaces des identités managées par l’utilisateur à ajouter. Une fois ajoutée, l’identité peut uniquement être supprimée via l’appel d’API pour le moment.

Mettre à jour des identités du gestionnaire de cluster via des API

Vous pouvez affecter les identités managées du gestionnaire de cluster via l’interface CLI. L’annulation d’affectation des identités peut être effectuée via des appels d’API. Notez que <APIVersion> est la version d’API 2024-07-01 ou une version plus récente.

  • Pour supprimer toutes les identités managées, exécutez :

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body "{\"identity\":{\"type\":\"None\"}}"
    
  • Si des identités managées affectées par l’utilisateur et des identités managées affectées par le système ont été ajoutées, l’élément affecté par l’utilisateur peut être supprimé en remplaçant la valeur type par SystemAssigned :

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    L’exemple de corps de la demande (uai-body.json) :

    {
      "identity": {
          "type": "SystemAssigned"
      }
    }
    
  • Si des identités managées affectées par l’utilisateur et des identités managées affectées par le système ont été ajoutées, l’élément affecté par le système peut être supprimé en remplaçant la valeur type par UserAssigned :

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    L’exemple de corps de la demande (uai-body.json) :

    {
      "identity": {
          "type": "UserAssigned",
      	"userAssignedIdentities": {
      		"/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": {}
      	}
      }
    }
    
  • Si plusieurs identités managées affectées par l’utilisateur ont été ajoutées, l’une d’entre elles peut être supprimée en exécutant :

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_MANAGER_RG/providers/Microsoft.NetworkCloud/clusterManagers/$CLUSTER_MANAGER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    L’exemple de corps de la demande (uai-body.json) :

    {
      "identity": {
          "type": "UserAssigned",
      	"userAssignedIdentities": {
      		"/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": null
      	}
      }
    }
    

Supprimer le gestionnaire de cluster

Cette commande est utilisée pour supprimer le gestionnaire de cluster fourni.

Avertissement

Un gestionnaire de cluster qui a un contrôleur de structure réseau associé existant ou tous les clusters qui référencent ce gestionnaire de cluster ne peuvent pas être supprimés.

az networkcloud clustermanager delete \
    --name "$CLUSTER_MANAGER_NAME" \
    --resource-group "$CLUSTER_MANAGER_RG" \
    --subscription "$SUB_ID"
  • Arguments
    • --no-wait : ne pas attendre que l’opération de longue durée se termine.
    • --yes -y : ne pas demander de confirmation.
    • --name -n : nom du gestionnaire de cluster.
    • --IDs : un ou plusieurs ID de ressource (délimités par un espace). Il doit s’agir d’un ID de ressource complet contenant toutes les informations des arguments « ID de ressource ».
    • --resource-group-g : nom du groupe de ressources. Vous pouvez configurer le groupe par défaut en utilisant az configure --defaults group=<name>.
    • --subscription : nom ou ID de l’abonnement. Vous pouvez configurer l’abonnement par défaut en utilisant az account set -s NAME_OR_ID.

Étapes suivantes

Une fois que vous avez correctement créé le contrôleur de structure réseau et le gestionnaire de cluster, l’étape suivante consiste à créer une structure réseau.