Créer et approvisionner un cluster à l’aide d’Azure CLI
Cet article explique comment créer un cluster à l’aide de l’interface de ligne de commande Azure (AzCLI). Ce document vous montre également comment vérifier l’état d’un cluster, le mettre à jour ou le supprimer.
Prérequis
- Vérifier que le contrôleur de structure réseau et le gestionnaire de cluster existent dans votre région Azure
- Vérifier que Network Fabric est correctement approvisionné
Guide et métriques d’API
Le guide d’API fournit des informations sur les fournisseurs de ressources et les modèles de ressources, ainsi que sur les API.
Les métriques générées à partir des données de journalisation sont disponibles dans les métriques Azure Monitor.
Créer un cluster
La ressource de cluster d’infrastructure représente un déploiement local de la plateforme dans le Gestionnaire de cluster. Toutes les autres ressources spécifiques à la plateforme en dépendent pour leur cycle de vie.
Vous devez créer l’instance Network Fabric avant ce déploiement local. Chaque instance Operator Nexus locale a une association un-à-un avec une structure réseau.
Créez le cluster avec AZ CLI :
az networkcloud cluster create --name "$CLUSTER_NAME" --location "$LOCATION" \
--extended-location name="$CL_NAME" type="CustomLocation" \
--resource-group "$CLUSTER_RG" \
--analytics-workspace-id "$LAW_ID" \
--cluster-location "$CLUSTER_LOCATION" \
--network-rack-id "$AGGR_RACK_RESOURCE_ID" \
--rack-sku-id "$AGGR_RACK_SKU"\
--rack-serial-number "$AGGR_RACK_SN" \
--rack-location "$AGGR_RACK_LOCATION" \
--bare-metal-machine-configuration-data "["$AGGR_RACK_BMM"]" \
--storage-appliance-configuration-data '[{"adminCredentials":{"password":"$SA_PASS","username":"$SA_USER"},"rackSlot":1,"serialNumber":"$SA_SN","storageApplianceName":"$SA_NAME"}]' \
--compute-rack-definitions '[{"networkRackId": "$COMPX_RACK_RESOURCE_ID", "rackSkuId": "$COMPX_RACK_SKU", "rackSerialNumber": "$COMPX_RACK_SN", "rackLocation": "$COMPX_RACK_LOCATION", "storageApplianceConfigurationData": [], "bareMetalMachineConfigurationData":[{"bmcCredentials": {"password":"$COMPX_SVRY_BMC_PASS", "username":"$COMPX_SVRY_BMC_USER"}, "bmcMacAddress":"$COMPX_SVRY_BMC_MAC", "bootMacAddress":"$COMPX_SVRY_BOOT_MAC", "machineDetails":"$COMPX_SVRY_SERVER_DETAILS", "machineName":"$COMPX_SVRY_SERVER_NAME"}]}]'\
--managed-resource-group-configuration name="$MRG_NAME" location="$MRG_LOCATION" \
--network fabric-id "$NF_ID" \
--cluster-service-principal application-id="$SP_APP_ID" \
password="$SP_PASS" principal-id="$SP_ID" tenant-id="$TENANT_ID" \
--subscription "$SUBSCRIPTION_ID" \
--secret-archive "{key-vault-id:$KVRESOURCE_ID, use-key-vault:true}" \
--cluster-type "$CLUSTER_TYPE" --cluster-version "$CLUSTER_VERSION" \
--tags $TAG_KEY1="$TAG_VALUE1" $TAG_KEY2="$TAG_VALUE2"
Paramètres pour les opérations de cluster
Nom du paramètre | Description |
---|---|
CLUSTER_NAME | Nom de ressource de la ressource |
LOCATION | Région Azure où le cluster est déployé |
CL_NAME | Emplacement personnalisé du Gestionnaire de cluster à partir du portail Azure |
CLUSTER_RG | Nom du groupe de ressources de cluster |
LAW_ID | ID d’espace de travail Log Analytics pour le cluster |
CLUSTER_LOCATION | Nom local du cluster |
AGGR_RACK_RESOURCE_ID | ID de rack pour le rack Aggregator |
AGGR_RACK_SKU | Référence SKU de rack pour le rack Aggregator |
AGGR_RACK_SN | Numéro de série de rack pour le rack Aggregator |
AGGR_RACK_LOCATION | Emplacement physique du rack pour le rack Aggregator |
AGGR_RACK_BMM | Utilisé uniquement pour un déploiement à rack unique ; vide pour un déploiement multirack |
SA_NAME | Nom d’appareil de l’appliance de stockage |
SA_PASS | Mot de passe administrateur de l’appliance de stockage |
SA_USER | Utilisateur administrateur de l’appliance de stockage |
SA_SN | Numéro de série de l’appliance de stockage |
COMPX_RACK_RESOURCE_ID | ID de rack pour le rack CompX ; répéter cette opération pour chaque rack dans compute-rack-definitions |
COMPX_RACK_SKU | Référence SKU de rack pour le rack CompX ; répéter cette opération pour chaque rack dans compute-rack-definitions |
COMPX_RACK_SN | Numéro de série de rack pour le rack CompX ; répéter cette opération pour chaque rack dans compute-rack-definitions |
COMPX_RACK_LOCATION | Emplacement physique du rack pour le rack CompX ; répéter cette opération pour chaque rack dans compute-rack-definitions |
COMPX_SVRY_BMC_PASS | Mot de passe BMC de serveur Y monté en rack CompX. Répétez cette opération pour chaque rack dans les définitions de rack de calcul et pour chaque serveur se trouvant dans le rack |
COMPX_SVRY_BMC_USER | Utilisateur BMC de serveur Y monté en rack CompX. Répétez cette opération pour chaque rack dans les définitions de rack de calcul et pour chaque serveur se trouvant dans le rack |
COMPX_SVRY_BMC_MAC | Adresse MAC BMC de serveur Y monté en rack CompX. Répétez cette opération pour chaque rack dans les définitions de rack de calcul et pour chaque serveur se trouvant dans le rack |
COMPX_SVRY_BOOT_MAC | Adresse MAC de carte réseau de démarrage de serveur Y monté en rack CompX. Répétez cette opération pour chaque rack dans les définitions de rack de calcul et pour chaque serveur se trouvant dans le rack |
COMPX_SVRY_SERVER_DETAILS | Détails de serveur Y monté en rack CompX. Répétez cette opération pour chaque rack dans les définitions de rack de calcul et pour chaque serveur se trouvant dans le rack |
COMPX_SVRY_SERVER_NAME | Nom de serveur Y monté en rack CompX. Répétez cette opération pour chaque rack dans les définitions de rack de calcul et pour chaque serveur se trouvant dans le rack |
MRG_NAME | Nom du groupe de ressources managées de cluster |
MRG_LOCATION | Région Azure du cluster |
NF_ID | Référence à l’instance Network Fabric |
SP_APP_ID | ID d’application du principal de service |
SP_PASS | Mot de passe du principal de service |
SP_ID | ID de principal de service |
TENANT_ID | ID de locataire d’abonnement |
SUBSCRIPTION_ID | ID d’abonnement |
KV_RESOURCE_ID | ID du coffre de clés |
CLUSTER_TYPE | Type de cluster : monorack ou multirack |
CLUSTER_VERSION | Version NC de cluster |
TAG_KEY1 | Balise facultative 1 à passer à la création de cluster |
TAG_VALUE1 | Valeur de la balise facultative 1 à passer à la création de cluster |
TAG_KEY2 | Balise facultative 2 à passer à la création de cluster |
TAG_VALUE2 | Valeur de la balise facultative 2 à passer à la création de cluster |
Créer le cluster à l’aide de l’éditeur de modèles Azure Resource Manager
Une autre façon de créer un cluster consiste à utiliser l’éditeur de modèles ARM.
Pour créer le cluster de cette façon, vous devez fournir un fichier de modèle (cluster.jsonc) et un fichier de paramètres (cluster.parameters.jsonc).
Vous trouverez des exemples pour un cluster de référence SKU 2M16C à 8 racks utilisant ces deux fichiers :
cluster.jsonc , cluster.parameters.jsonc
Remarque
Pour obtenir la mise en forme appropriée, copiez le fichier de code brut. Les valeurs du fichier cluster.parameters.jsonc sont spécifiques au client et peuvent ne pas constituer une liste exhaustive. Mettez à jour les champs de valeurs en fonction de votre environnement.
- Dans un navigateur web, accédez au portail Azure et connectez-vous à votre compte.
- Dans la barre de recherche du portail Azure, recherchez « Déployer un modèle personnalisé », puis sélectionnez cette option parmi les services disponibles.
- Cliquez sur Créer votre propre modèle dans l’éditeur.
- Cliquez sur Charger le fichier. Recherchez votre fichier de modèle cluster.jsonc et chargez-le.
- Cliquez sur Enregistrer.
- Cliquez sur Modifier les paramètres.
- Cliquez sur Charger le fichier. Recherchez votre fichier de paramètres cluster.parameters.jsonc et chargez-le.
- Cliquez sur Enregistrer.
- Sélectionnez l’abonnement approprié.
- Recherchez le groupe de ressources pour voir s’il existe déjà. Si ce n’est pas le cas, créez un groupe de ressources.
- Vérifiez que tous les détails de l’instance sont corrects.
- Cliquez sur Vérifier + créer.
Validation des clusters
Une création réussie d’un cluster Operator Nexus entraîne la création d’un cluster AKS dans votre abonnement. L’ID de cluster, l’état d’approvisionnement du cluster et l’état de déploiement sont retournés suite à une opération cluster create
réussie.
Consultez l’état du cluster :
az networkcloud cluster show --resource-group "$CLUSTER_RG" \
--cluster-name "$CLUSTER_RESOURCE_NAME"
La création du cluster est terminée lorsque la valeur provisioningState
de la ressource affiche : "provisioningState": "Succeeded"
Journalisation des clusters
Vous pouvez consulter les journaux de création de cluster aux emplacements suivants :
- Journaux d’activité Resource/ResourceGroup du portail Azure.
- Azure CLI avec l’indicateur
--debug
passé sur la ligne de commande.
Déployer un cluster
Après la création du cluster, l’action de déploiement du cluster peut être déclenchée. L’action de déploiement de cluster crée l’image de démarrage et déploie le cluster.
L’action de déploiement de cluster déclenche une séquence d’événements dans le Gestionnaire de cluster.
- Validation des propriétés du cluster/rack
- Génération d’une image de démarrage pour le cluster de démarrage éphémère (validation de l’infrastructure).
- Interaction avec l’interface IPMI de la machine de démarrage ciblée.
- Exécution de contrôles de validation matérielle.
- Monitoring du processus de déploiement de cluster.
Déployez le cluster local :
az networkcloud cluster deploy \
--name "$CLUSTER_NAME" \
--resource-group "$CLUSTER_RG" \
--subscription "$SUBSCRIPTION_ID" \
--no-wait --debug
Conseil
Pour vérifier l’état de la commande az networkcloud cluster deploy
, vous pouvez l’exécuter à l’aide de l’indicateur --debug
.
Cela vous permet d’obtenir l’en-tête Azure-AsyncOperation
ou Location
utilisé pour interroger la ressource operationStatuses
.
Pour plus d’informations, consultez la section Échec du déploiement du cluster.
Si vous le souhaitez, la commande peut s’exécuter de manière asynchrone à l’aide de l’indicateur --no-wait
.
Déploiement de cluster avec validation matérielle
Pendant un processus de déploiement de cluster, l’une des étapes exécutées est la validation matérielle. La procédure de validation matérielle exécute différents tests et vérifications sur les machines fournies via la définition de rack du cluster. En fonction des résultats de ces vérifications et de toutes les machines ignorées par l’utilisateur, une détermination est effectuée pour déterminer si des nœuds suffisants sont passés et/ou sont disponibles pour atteindre les seuils nécessaires au déploiement pour continuer.
Important
Le processus de validation matérielle écrit les résultats dans l’élément spécifié analyticsWorkspaceId
lors de la création du cluster.
En outre, le principal de service fourni dans l’objet Cluster est utilisé pour l’authentification auprès de l’API de collecte de données de l’espace de travail Log Analytics.
Cette fonctionnalité est visible uniquement pendant un nouveau déploiement (champ vert). Le cluster existant ne dispose pas des journaux d’activité rétroactifs.
Par défaut, le processus de validation matérielle écrit les résultats dans le cluster analyticsWorkspaceId
configuré.
Toutefois, en raison de la nature de la collecte de données de l’espace de travail Log Analytics et de l’évaluation du schéma, il peut y avoir un délai d’ingestion qui peut prendre plusieurs minutes ou plus.
Pour cette raison, le déploiement du cluster se poursuit même s’il n’y a pas eu de défaillance pour écrire les résultats dans l’espace de travail Log Analytics.
Pour résoudre cet événement possible, les résultats, pour la redondance, sont également enregistrés dans le Gestionnaire de cluster.
Dans l’espace de travail Log Analytics de l’objet cluster fourni, une nouvelle table personnalisée portant le nom du cluster comme préfixe et le suffixe *_CL
doit apparaître.
Dans la section Journaux de la ressource LAW, vous pouvez exécuter une requête sur la nouvelle table de journal personnalisé *_CL
.
Action de déploiement de cluster en ignorant une machine nue spécifique
Vous pouvez transmettre un paramètre à la commande deploy qui représente les noms des machines nues du cluster qui doivent être ignorés lors de la validation matérielle. Les nœuds ignorés ne sont pas validés et ne sont pas ajoutés au pool de nœuds. En outre, les nœuds ignorés ne sont pas comptabilisés par rapport au total utilisé par les calculs de seuil.
az networkcloud cluster deploy \
--name "$CLUSTER_NAME" \
--resource-group "$CLUSTER_RG" \
--subscription "$SUBSCRIPTION_ID" \
--skip-validations-for-machines "$COMPX_SVRY_SERVER_NAME"
Échec du déploiement de cluster
Pour suivre l’état d’une opération asynchrone, exécutez avec un indicateur --debug
activé.
Quand vous spécifiez --debug
, vous pouvez superviser la progression de la requête.
L’URL d’état de l’opération est disponible en examinant la sortie de débogage à la recherche de l’en-tête Azure-AsyncOperation
ou Location
de la réponse HTTP à la demande de création.
Les en-têtes peuvent fournir le champ OPERATION_ID
utilisé dans l’appel d’API HTTP.
OPERATION_ID="12312312-1231-1231-1231-123123123123*99399E995..."
az rest -m GET -u "https://management.azure.com/subscriptions/${SUBSCRIPTION_ID}/providers/Microsoft.NetworkCloud/locations/${LOCATION}/operationStatuses/${OPERATION_ID}?api-version=2022-12-12-preview"
La sortie est similaire à l’exemple de struct JSON. Lorsque le code d’erreur est HardwareValidationThresholdFailed
, le message d’erreur contient la liste des machines nues qui ont échoué à la validation matérielle (par exemple, COMP0_SVR0_SERVER_NAME
, COMP1_SVR1_SERVER_NAME
). Vous pouvez utiliser ces noms pour analyser les journaux pour plus d’informations.
{
"endTime": "2023-03-24T14:56:59.0510455Z",
"error": {
"code": "HardwareValidationThresholdFailed",
"message": "HardwareValidationThresholdFailed error hardware validation threshold for cluster layout plan is not met for cluster $CLUSTER_NAME in namespace nc-system with listed failed devices $COMP0_SVR0_SERVER_NAME, $COMP1_SVR1_SERVER_NAME"
},
"id": "/subscriptions/$SUBSCRIPTION_ID/providers/Microsoft.NetworkCloud/locations/$LOCATION/operationStatuses/12312312-1231-1231-1231-123123123123*99399E995...",
"name": "12312312-1231-1231-1231-123123123123*99399E995...",
"resourceId": "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$CLUSTER_RESOURCE_GROUP/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME",
"startTime": "2023-03-24T14:56:26.6442125Z",
"status": "Failed"
}
Consultez l’article Suivi des opérations asynchrones à l’aide d’Azure CLI pour obtenir un autre exemple.
Validation du déploiement d’un cluster
Affichez l'état du cluster sur le portail ou via Azure CLI :
az networkcloud cluster show --resource-group "$CLUSTER_RG" \
--name "$CLUSTER_NAME"
Le déploiement du cluster est en cours lorsque detailedStatus est défini sur Deploying
et detailedStatusMessage affiche la progression du déploiement.
Voici quelques exemples de progression du déploiement affichés dans detailedStatusMessage Hardware validation is in progress.
(si le cluster est déployé avec validation matérielle), Cluster is bootstrapping.
, KCP initialization in progress.
, Management plane deployment in progress.
, Cluster extension deployment in progress.
, waiting for "<rack-ids>" to be ready
, etc.
Le déploiement du cluster est terminé lorsque detailedStatus est défini sur Running
et detailedStatusMessage affiche le message Cluster is up and running
.
Affichez la version de gestion du cluster :
az k8s-extension list --cluster-name "$CLUSTER_NAME" --resource-group "$MRG_NAME" --cluster-type connectedClusters --query "[?name=='nc-platform-extension'].{name:name, extensionType:extensionType, releaseNamespace:scope.cluster.releaseNamespace,provisioningState:provisioningState,version:version}" -o table --subscription "$SUBSCRIPTION_ID"
Journalisation du déploiement d’un cluster
Vous pouvez consulter les journaux de création de cluster aux emplacements suivants :
- Journaux d’activité Resource/ResourceGroup du portail Azure.
- Azure CLI avec l’indicateur
--debug
passé sur la ligne de commande.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de l’année 2024, nous abandonnerons progressivement le mécanisme de retour d’information GitHub Issues pour le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultez :Soumettre et afficher des commentaires pour