2.3. Création d'un ensemble de machines de calcul sur Azure
Vous pouvez créer un ensemble de machines de calcul différent pour répondre à un besoin spécifique dans votre cluster OpenShift Container Platform sur Microsoft Azure. Par exemple, vous pouvez créer des jeux de machines d'infrastructure et des machines connexes afin de pouvoir déplacer des charges de travail de support vers les nouvelles machines.
Vous ne pouvez utiliser les fonctionnalités avancées de gestion et de mise à l'échelle des machines que dans les clusters où l'API Machine est opérationnelle. Les clusters dont l'infrastructure est fournie par l'utilisateur nécessitent une validation et une configuration supplémentaires pour utiliser l'API Machine.
Les clusters avec le type de plateforme d'infrastructure none ne peuvent pas utiliser l'API Machine. Cette limitation s'applique même si les machines de calcul attachées au cluster sont installées sur une plateforme qui prend en charge cette fonctionnalité. Ce paramètre ne peut pas être modifié après l'installation.
Pour afficher le type de plateforme de votre cluster, exécutez la commande suivante :
oc get infrastructure cluster -o jsonpath='{.status.platform}'
$ oc get infrastructure cluster -o jsonpath='{.status.platform}'
2.3.1. Exemple de YAML pour une ressource personnalisée d'un ensemble de machines de calcul sur Azure Copier lienLien copié sur presse-papiers!
Cet exemple YAML définit un ensemble de machines de calcul qui fonctionne dans la zone 1 Microsoft Azure d'une région et crée des nœuds étiquetés avec node-role.kubernetes.io/<role>: "".
Dans cet exemple, <infrastructure_id> est l'étiquette d'ID d'infrastructure basée sur l'ID de cluster que vous avez défini lors du provisionnement du cluster, et <role> est l'étiquette de nœud à ajouter.
- 1 5 7 16 17 20 23
- Spécifiez l'ID d'infrastructure qui est basé sur l'ID de cluster que vous avez défini lorsque vous avez provisionné le cluster. Si le CLI OpenShift est installé, vous pouvez obtenir l'ID d'infrastructure en exécutant la commande suivante :
oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez obtenir le sous-réseau en exécutant la commande suivante :
oc -n openshift-machine-api \ -o jsonpath='{.spec.template.spec.providerSpec.value.subnet}{"\n"}' \ get machineset/<infrastructure_id>-worker-centralus1$ oc -n openshift-machine-api \ -o jsonpath='{.spec.template.spec.providerSpec.value.subnet}{"\n"}' \ get machineset/<infrastructure_id>-worker-centralus1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez obtenir le vnet en exécutant la commande suivante :
oc -n openshift-machine-api \ -o jsonpath='{.spec.template.spec.providerSpec.value.vnet}{"\n"}' \ get machineset/<infrastructure_id>-worker-centralus1$ oc -n openshift-machine-api \ -o jsonpath='{.spec.template.spec.providerSpec.value.vnet}{"\n"}' \ get machineset/<infrastructure_id>-worker-centralus1Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 2 3 8 9 12 21 22
- Spécifiez l'étiquette de nœud à ajouter.
- 4 6 10
- Spécifiez l'ID de l'infrastructure, l'étiquette du nœud et la région.
- 11
- Facultatif : Spécifiez le nom de l'ensemble de machines de calcul pour activer l'utilisation des ensembles de disponibilité. Ce paramètre ne s'applique qu'aux nouvelles machines de calcul.
- 13
- Spécifiez les détails de l'image pour votre ensemble de machines de calcul. Si vous souhaitez utiliser une image Azure Marketplace, voir "Sélection d'une image Azure Marketplace".
- 14
- Spécifiez une image compatible avec votre type d'instance. Les images Hyper-V de génération V2 créées par le programme d'installation ont un suffixe
-gen2, tandis que les images V1 portent le même nom sans suffixe. - 15
- Spécifiez la région où placer les machines.
- 24
- Indiquez la zone de votre région où placer les machines. Assurez-vous que votre région prend en charge la zone que vous spécifiez.
- 18 19
- Optionnel : Spécifiez des balises personnalisées dans votre jeu de machines. Indiquez le nom de la balise dans le champ
<custom_tag_name>et la valeur de la balise correspondante dans le champ<custom_tag_value>.
2.3.2. Création d'un ensemble de machines de calcul Copier lienLien copié sur presse-papiers!
En plus des ensembles de machines de calcul créés par le programme d'installation, vous pouvez créer vos propres ensembles pour gérer dynamiquement les ressources de calcul des machines pour les charges de travail spécifiques de votre choix.
Conditions préalables
- Déployer un cluster OpenShift Container Platform.
-
Installez le CLI OpenShift (
oc). -
Connectez-vous à
ocen tant qu'utilisateur disposant de l'autorisationcluster-admin.
Procédure
Créez un nouveau fichier YAML contenant l'échantillon de ressources personnalisées (CR) de l'ensemble de machines de calcul et nommé
<file_name>.yaml.Veillez à définir les valeurs des paramètres
<clusterID>et<role>.Facultatif : si vous n'êtes pas sûr de la valeur à définir pour un champ spécifique, vous pouvez vérifier un ensemble de machines de calcul existant dans votre cluster.
Pour répertorier les ensembles de machines de calcul de votre cluster, exécutez la commande suivante :
oc get machinesets -n openshift-machine-api
$ oc get machinesets -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour afficher les valeurs d'une ressource personnalisée (CR) d'un ensemble de machines de calcul spécifique, exécutez la commande suivante :
oc get machineset <machineset_name> \ -n openshift-machine-api -o yaml
$ oc get machineset <machineset_name> \ -n openshift-machine-api -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- L'ID de l'infrastructure du cluster.
- 2
- Une étiquette de nœud par défaut.Note
Pour les clusters disposant d'une infrastructure fournie par l'utilisateur, un ensemble de machines de calcul ne peut créer que des machines de type
workeretinfra. - 3
- Les valeurs de la section
<providerSpec>du CR de l'ensemble de machines de calcul sont spécifiques à la plate-forme. Pour plus d'informations sur les paramètres<providerSpec>dans le CR, consultez l'exemple de configuration du CR de l'ensemble de machines de calcul pour votre fournisseur.
Créez un CR
MachineSeten exécutant la commande suivante :oc create -f <nom_du_fichier>.yaml
oc create -f <nom_du_fichier>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Affichez la liste des ensembles de machines de calcul en exécutant la commande suivante :
oc get machineset -n openshift-machine-api
$ oc get machineset -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Lorsque le nouveau jeu de machines de calcul est disponible, les valeurs
DESIREDetCURRENTcorrespondent. Si le jeu de machines de calcul n'est pas disponible, attendez quelques minutes et exécutez à nouveau la commande.
2.3.3. Selecting an Azure Marketplace image Copier lienLien copié sur presse-papiers!
Vous pouvez créer un jeu de machines fonctionnant sur Azure qui déploie des machines utilisant l'offre Azure Marketplace. Pour utiliser cette offre, vous devez d'abord obtenir l'image Azure Marketplace. Lorsque vous obtenez votre image, tenez compte des éléments suivants :
-
While the images are the same, the Azure Marketplace publisher is different depending on your region. If you are located in North America, specify
redhatas the publisher. If you are located in EMEA, specifyredhat-limitedas the publisher. -
The offer includes a
rh-ocp-workerSKU and arh-ocp-worker-gen1SKU. Therh-ocp-workerSKU represents a Hyper-V generation version 2 VM image. The default instance types used in OpenShift Container Platform are version 2 compatible. If you plan to use an instance type that is only version 1 compatible, use the image associated with therh-ocp-worker-gen1SKU. Therh-ocp-worker-gen1SKU represents a Hyper-V version 1 VM image.
Installing images with the Azure marketplace is not supported on clusters with arm64 instances.
Conditions préalables
-
You have installed the Azure CLI client
(az). - Your Azure account is entitled for the offer and you have logged into this account with the Azure CLI client.
Procédure
Display all of the available OpenShift Container Platform images by running one of the following commands:
North America:
az vm image list --all --offer rh-ocp-worker --publisher redhat -o table
$ az vm image list --all --offer rh-ocp-worker --publisher redhat -o tableCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Offer Publisher Sku Urn Version ------------- -------------- ------------------ -------------------------------------------------------------- -------------- rh-ocp-worker RedHat rh-ocp-worker RedHat:rh-ocp-worker:rh-ocpworker:4.8.2021122100 4.8.2021122100 rh-ocp-worker RedHat rh-ocp-worker-gen1 RedHat:rh-ocp-worker:rh-ocp-worker-gen1:4.8.2021122100 4.8.2021122100
Offer Publisher Sku Urn Version ------------- -------------- ------------------ -------------------------------------------------------------- -------------- rh-ocp-worker RedHat rh-ocp-worker RedHat:rh-ocp-worker:rh-ocpworker:4.8.2021122100 4.8.2021122100 rh-ocp-worker RedHat rh-ocp-worker-gen1 RedHat:rh-ocp-worker:rh-ocp-worker-gen1:4.8.2021122100 4.8.2021122100Copy to Clipboard Copied! Toggle word wrap Toggle overflow EMEA:
az vm image list --all --offer rh-ocp-worker --publisher redhat-limited -o table
$ az vm image list --all --offer rh-ocp-worker --publisher redhat-limited -o tableCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Offer Publisher Sku Urn Version ------------- -------------- ------------------ -------------------------------------------------------------- -------------- rh-ocp-worker redhat-limited rh-ocp-worker redhat-limited:rh-ocp-worker:rh-ocp-worker:4.8.2021122100 4.8.2021122100 rh-ocp-worker redhat-limited rh-ocp-worker-gen1 redhat-limited:rh-ocp-worker:rh-ocp-worker-gen1:4.8.2021122100 4.8.2021122100
Offer Publisher Sku Urn Version ------------- -------------- ------------------ -------------------------------------------------------------- -------------- rh-ocp-worker redhat-limited rh-ocp-worker redhat-limited:rh-ocp-worker:rh-ocp-worker:4.8.2021122100 4.8.2021122100 rh-ocp-worker redhat-limited rh-ocp-worker-gen1 redhat-limited:rh-ocp-worker:rh-ocp-worker-gen1:4.8.2021122100 4.8.2021122100Copy to Clipboard Copied! Toggle word wrap Toggle overflow
NoteRegardless of the version of OpenShift Container Platform that you install, the correct version of the Azure Marketplace image to use is 4.8. If required, your VMs are automatically upgraded as part of the installation process.
Inspect the image for your offer by running one of the following commands:
North America:
az vm image show --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>
$ az vm image show --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow EMEA:
az vm image show --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>
$ az vm image show --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Review the terms of the offer by running one of the following commands:
North America:
az vm image terms show --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>
$ az vm image terms show --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow EMEA:
az vm image terms show --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>
$ az vm image terms show --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Accept the terms of the offering by running one of the following commands:
North America:
az vm image terms accept --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>
$ az vm image terms accept --urn redhat:rh-ocp-worker:rh-ocp-worker:<version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow EMEA:
az vm image terms accept --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>
$ az vm image terms accept --urn redhat-limited:rh-ocp-worker:rh-ocp-worker:<version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Enregistrez les détails de l'image de votre offre, en particulier les valeurs de
publisher,offer,skuetversion. Ajoutez les paramètres suivants à la section
providerSpecde votre fichier YAML de configuration de la machine en utilisant les détails de l'image pour votre offre :Exemple de valeurs d'image
providerSpecpour les machines Azure MarketplaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.4. Activation des diagnostics de démarrage Azure Copier lienLien copié sur presse-papiers!
Vous pouvez activer les diagnostics de démarrage sur les machines Azure créées par votre jeu de machines.
Conditions préalables
- Disposer d'un cluster Microsoft Azure existant.
Procédure
Ajoutez la configuration
diagnosticsapplicable à votre type de stockage au champproviderSpecde votre fichier YAML machine set :Pour un compte de stockage géré par Azure :
providerSpec: diagnostics: boot: storageAccountType: AzureManagedproviderSpec: diagnostics: boot: storageAccountType: AzureManaged1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Spécifie un compte de stockage Azure Managed.
Pour un compte de stockage Azure non géré :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteSeul le service de données Azure Blob Storage est pris en charge.
Vérification
- Sur le portail Microsoft Azure, consultez la page Boot diagnostics pour une machine déployée par le jeu de machines et vérifiez que vous pouvez voir les journaux de série pour la machine.
2.3.5. Jeux de machines qui déploient des machines en tant que VM Spot Copier lienLien copié sur presse-papiers!
Vous pouvez réaliser des économies en créant un ensemble de machines de calcul fonctionnant sur Azure qui déploie des machines en tant que VM Spot non garanties. Les VM Spot utilisent la capacité inutilisée d'Azure et sont moins coûteuses que les VM standard. Vous pouvez utiliser les Spot VM pour les charges de travail qui peuvent tolérer des interruptions, telles que les charges de travail par lots ou sans état, évolutives horizontalement.
Azure peut mettre fin à une VM Spot à tout moment. Azure donne un avertissement de 30 secondes à l'utilisateur lorsqu'une interruption se produit. OpenShift Container Platform commence à supprimer les charges de travail des instances concernées lorsque Azure émet l'avertissement de résiliation.
Des interruptions peuvent se produire lors de l'utilisation des VM Spot pour les raisons suivantes :
- Le prix de l'instance dépasse votre prix maximum
- L'offre de machines virtuelles Spot diminue
- Azure a besoin d'un retour de capacité
Lorsqu'Azure met fin à une instance, un gestionnaire de fin s'exécutant sur le nœud Spot VM supprime la ressource machine. Pour satisfaire la quantité de l'ensemble de machines de calcul replicas, l'ensemble de machines de calcul crée une machine qui demande une VM Spot.
2.3.5.1. Création de machines virtuelles Spot à l'aide d'ensembles de machines de calcul Copier lienLien copié sur presse-papiers!
Vous pouvez lancer une VM Spot sur Azure en ajoutant spotVMOptions à votre fichier YAML d'ensemble de machine de calcul.
Procédure
Ajoutez la ligne suivante sous le champ
providerSpec:providerSpec: value: spotVMOptions: {}providerSpec: value: spotVMOptions: {}Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez éventuellement définir le champ
spotVMOptions.maxPricepour limiter le coût de la VM Spot. Par exemple, vous pouvez définirmaxPrice: '0.98765'. Si le champmaxPriceest défini, cette valeur est utilisée comme prix maximum horaire de la VM Spot. S'il n'est pas défini, le prix maximum est fixé par défaut à-1et les frais sont portés au prix standard de la VM.Azure plafonne les prix des VM Spot au prix standard. Azure n'expulsera pas une instance en raison de la tarification si l'instance est configurée avec le prix par défaut
maxPrice. Cependant, une instance peut toujours être expulsée en raison de restrictions de capacité.
Il est fortement recommandé d'utiliser le prix standard par défaut des VM comme valeur maxPrice et de ne pas fixer le prix maximum pour les VM Spot.
2.3.6. Jeux de machines qui déploient des machines sur des disques d'OS éphémères Copier lienLien copié sur presse-papiers!
Vous pouvez créer un ensemble de machines de calcul fonctionnant sur Azure qui déploie des machines sur des disques OS éphémères. Les disques OS éphémères utilisent la capacité locale des VM plutôt que le stockage Azure distant. Cette configuration n'entraîne donc aucun coût supplémentaire et offre une latence réduite pour la lecture, l'écriture et la réimagerie.
2.3.6.1. Création de machines sur des disques OS éphémères à l'aide d'ensembles de machines de calcul Copier lienLien copié sur presse-papiers!
Vous pouvez lancer des machines sur des disques OS éphémères sur Azure en modifiant votre fichier YAML d'ensemble de machine de calcul.
Conditions préalables
- Disposer d'un cluster Microsoft Azure existant.
Procédure
Modifiez la ressource personnalisée (CR) en exécutant la commande suivante :
oc edit machineset <machine-set-name> $ oc edit machineset <machine-set-name>
oc edit machineset <machine-set-name> $ oc edit machineset <machine-set-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow où
<machine-set-name>est l'ensemble de machines de calcul que vous souhaitez provisionner sur des disques OS éphémères.Ajoutez ce qui suit au champ
providerSpec:Copy to Clipboard Copied! Toggle word wrap Toggle overflow ImportantL'implémentation de la prise en charge des disques OS éphémères dans OpenShift Container Platform ne prend en charge que le type de placement
CacheDisk. Ne modifiez pas le paramètre de configurationplacement.Créez un ensemble de machines de calcul en utilisant la configuration mise à jour :
oc create -f <machine-set-config>.yaml
oc create -f <machine-set-config>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
-
Sur le portail Microsoft Azure, consultez la page Overview pour une machine déployée par l'ensemble de machines de calcul et vérifiez que le champ
Ephemeral OS diskest défini surOS cache placement.
2.3.7. Jeux de machines qui déploient des machines avec des disques ultra comme disques de données Copier lienLien copié sur presse-papiers!
Vous pouvez créer un jeu de machines fonctionnant sur Azure qui déploie des machines avec des ultra-disques. Les disques ultra sont des systèmes de stockage haute performance destinés à être utilisés avec les charges de travail les plus exigeantes.
Vous pouvez également créer une revendication de volume persistant (PVC) qui se lie dynamiquement à une classe de stockage soutenue par des disques Azure ultra et les monte sur des pods.
Les disques de données ne permettent pas de spécifier le débit ou l'IOPS du disque. Vous pouvez configurer ces propriétés en utilisant des PVC.
2.3.7.1. Création de machines avec ultra-disques à l'aide de jeux de machines Copier lienLien copié sur presse-papiers!
Vous pouvez déployer des machines avec des ultra-disques sur Azure en modifiant votre fichier YAML de configuration des machines.
Conditions préalables
- Disposer d'un cluster Microsoft Azure existant.
Procédure
Créez un secret personnalisé dans l'espace de noms
openshift-machine-apien utilisant le secret de donnéesworkeren exécutant la commande suivante :oc -n openshift-machine-api \ get secret <role>-user-data \ --template='{{index .data.userData | base64decode}}' | jq > userData.txt$ oc -n openshift-machine-api \ get secret <role>-user-data \1 --template='{{index .data.userData | base64decode}}' | jq > userData.txt2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans un éditeur de texte, ouvrez le fichier
userData.txtet localisez le caractère final}dans le fichier.-
Sur la ligne immédiatement précédente, ajouter un
,. Créez une nouvelle ligne après le site
,et ajoutez les détails de configuration suivants :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Les détails de configuration du disque que vous souhaitez attacher à un nœud en tant qu'ultra disque.
- 2
- Indiquez la valeur
lundéfinie dans la strophedataDisksdu jeu de machines que vous utilisez. Par exemple, si le jeu de machines contientlun: 0, indiquezlun0. Vous pouvez initialiser plusieurs disques de données en spécifiant plusieurs entrées"disks"dans ce fichier de configuration. Si vous spécifiez plusieurs entrées"disks", assurez-vous que la valeurlunde chaque entrée correspond à la valeur du jeu de machines. - 3
- Les détails de la configuration d'une nouvelle partition sur le disque.
- 4
- Indiquez un nom pour la partition. Il peut être utile d'utiliser des noms hiérarchiques, tels que
lun0p1pour la première partition delun0. - 5
- Indiquez la taille totale en Mo de la partition.
- 6
- Spécifiez le système de fichiers à utiliser lors du formatage d'une partition. Utilisez l'étiquette de partition pour spécifier la partition.
- 7
- Indiquez une unité
systemdpour monter la partition au démarrage. Utilisez l'étiquette de partition pour spécifier la partition. Vous pouvez créer plusieurs partitions en spécifiant plusieurs entrées"partitions"dans ce fichier de configuration. Si vous spécifiez plusieurs entrées"partitions", vous devez spécifier une unitésystemdpour chacune d'entre elles. - 8
- Pour
Where, spécifiez la valeur destorage.filesystems.path. PourWhat, spécifiez la valeur destorage.filesystems.device.
-
Sur la ligne immédiatement précédente, ajouter un
Extrayez la valeur du modèle de désactivation dans un fichier appelé
disableTemplating.txten exécutant la commande suivante :oc -n openshift-machine-api get secret <role>-user-data \ --template='{{index .data.disableTemplating | base64decode}}' | jq > disableTemplating.txt$ oc -n openshift-machine-api get secret <role>-user-data \1 --template='{{index .data.disableTemplating | base64decode}}' | jq > disableTemplating.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Remplacer
<role>parworker.
Combinez les fichiers
userData.txtetdisableTemplating.txtpour créer un fichier de données secrètes en exécutant la commande suivante :oc -n openshift-machine-api create secret generic <role>-user-data-x5 \ --from-file=userData=userData.txt \ --from-file=disableTemplating=disableTemplating.txt
$ oc -n openshift-machine-api create secret generic <role>-user-data-x5 \1 --from-file=userData=userData.txt \ --from-file=disableTemplating=disableTemplating.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Pour
<role>-user-data-x5, indiquez le nom du secret. Remplacez<role>parworker.
Copiez une ressource personnalisée (CR) Azure
MachineSetexistante et modifiez-la en exécutant la commande suivante :oc edit machineset <machine-set-name> $ oc edit machineset <machine-set-name>
oc edit machineset <machine-set-name> $ oc edit machineset <machine-set-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow où
<machine-set-name>est l'ensemble de machines que vous voulez provisionner avec des ultra-disques.Ajouter les lignes suivantes aux endroits indiqués :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indiquez une étiquette à utiliser pour sélectionner un nœud créé par ce jeu de machines. Cette procédure utilise
disk.ultrassdpour cette valeur. - 2 3
- Ces lignes permettent d'utiliser des disques ultra. Pour
dataDisks, inclure la strophe entière. - 4
- Spécifiez le secret des données de l'utilisateur créé précédemment. Remplacez
<role>parworker.
Créez un jeu de machines à l'aide de la configuration mise à jour en exécutant la commande suivante :
oc create -f <machine-set-name>.yaml
oc create -f <machine-set-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Validez la création des machines en exécutant la commande suivante :
oc get machines
$ oc get machinesCopy to Clipboard Copied! Toggle word wrap Toggle overflow Les machines doivent être dans l'état
Running.Pour une machine en cours d'exécution et à laquelle un nœud est attaché, validez la partition en exécutant la commande suivante :
oc debug node/<node-name> -- chroot /host lsblk
$ oc debug node/<node-name> -- chroot /host lsblkCopy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cette commande,
oc debug node/<node-name>démarre un shell de débogage sur le nœud<node-name>et transmet une commande à--. La commande passéechroot /hostpermet d'accéder aux binaires du système d'exploitation hôte sous-jacent, etlsblkmontre les périphériques de bloc attachés à la machine du système d'exploitation hôte.
Prochaines étapes
Pour utiliser un ultra disque à partir d'un pod, créez une charge de travail qui utilise le point de montage. Créez un fichier YAML similaire à l'exemple suivant :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.7.2. Ressources de dépannage pour les ensembles de machines qui activent les ultra-disques Copier lienLien copié sur presse-papiers!
Utilisez les informations de cette section pour comprendre et résoudre les problèmes que vous pourriez rencontrer.
2.3.7.2.1. Configuration incorrecte de l'ultra disque Copier lienLien copié sur presse-papiers!
Si une configuration incorrecte du paramètre ultraSSDCapability est spécifiée dans le jeu de machines, le provisionnement de la machine échoue.
Par exemple, si le paramètre ultraSSDCapability est défini sur Disabled, mais qu'un disque ultra est spécifié dans le paramètre dataDisks, le message d'erreur suivant apparaît :
StorageAccountType UltraSSD_LRS can be used only when additionalCapabilities.ultraSSDEnabled is set.
StorageAccountType UltraSSD_LRS can be used only when additionalCapabilities.ultraSSDEnabled is set.
- Pour résoudre ce problème, vérifiez que la configuration de votre jeu de machines est correcte.
2.3.7.2.2. Paramètres de disque non pris en charge Copier lienLien copié sur presse-papiers!
Si une région, une zone de disponibilité ou une taille d'instance qui n'est pas compatible avec les disques ultra est spécifiée dans le jeu de machines, le provisionnement de la machine échoue. Vérifiez les journaux pour le message d'erreur suivant :
failed to create vm <machine_name> : failure sending request for machine <machine_name> : cannot create vm : compute.VirtualMachinesClient#CreateOrUpdate : Échec de l'envoi de la requête : StatusCode=400 -- Erreur d'origine : Code="BadRequest" Message="Le type de compte de stockage 'UltraSSD_LRS' n'est pas pris en charge <more_information_about_why>."
failed to create vm <machine_name> : failure sending request for machine <machine_name> : cannot create vm : compute.VirtualMachinesClient#CreateOrUpdate : Échec de l'envoi de la requête : StatusCode=400 -- Erreur d'origine : Code="BadRequest" Message="Le type de compte de stockage 'UltraSSD_LRS' n'est pas pris en charge <more_information_about_why>."
- Pour résoudre ce problème, vérifiez que vous utilisez cette fonctionnalité dans un environnement pris en charge et que la configuration de votre jeu de machines est correcte.
2.3.7.2.3. Impossible de supprimer des disques Copier lienLien copié sur presse-papiers!
Si la suppression des ultra-disques en tant que disques de données ne fonctionne pas comme prévu, les machines sont supprimées et les disques de données sont orphelins. Vous devez supprimer les disques orphelins manuellement si vous le souhaitez.
2.3.8. Activation des clés de chiffrement gérées par le client pour un ensemble de machines Copier lienLien copié sur presse-papiers!
Vous pouvez fournir une clé de chiffrement à Azure pour chiffrer les données sur les disques gérés au repos. Vous pouvez activer le chiffrement côté serveur avec des clés gérées par le client en utilisant l'API Machine.
Un Azure Key Vault, un ensemble de chiffrement de disque et une clé de chiffrement sont nécessaires pour utiliser une clé gérée par le client. Le jeu de chiffrement de disque doit se trouver dans un groupe de ressources auquel le Cloud Credential Operator (CCO) a accordé des autorisations. Si ce n'est pas le cas, un rôle de lecteur supplémentaire doit être accordé à l'ensemble de chiffrement de disque.
Conditions préalables
Procédure
Configurez le cryptage du disque dans le champ
providerSpecde votre fichier YAML de configuration de la machine. Par exemple :Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3.9. Mise en réseau accélérée pour les machines virtuelles Microsoft Azure Copier lienLien copié sur presse-papiers!
Accelerated Networking utilise la virtualisation d'E/S à racine unique (SR-IOV) pour fournir aux VM Microsoft Azure un chemin plus direct vers le commutateur. Les performances du réseau s'en trouvent améliorées. Cette fonctionnalité peut être activée pendant ou après l'installation.
2.3.9.1. Limitations Copier lienLien copié sur presse-papiers!
Tenez compte des limitations suivantes lorsque vous décidez d'utiliser ou non la mise en réseau accélérée :
- La mise en réseau accélérée n'est prise en charge que sur les clusters où l'API Machine est opérationnelle.
Bien que la configuration minimale requise pour un nœud de travail Azure soit de deux vCPU, Accelerated Networking nécessite une taille de VM Azure comprenant au moins quatre vCPU. Pour répondre à cette exigence, vous pouvez modifier la valeur de
vmSizedans votre jeu de machines. Pour plus d'informations sur les tailles de VM Azure, consultez la documentation Microsoft Azure.
- Lorsque cette fonctionnalité est activée sur un cluster Azure existant, seuls les nœuds nouvellement provisionnés sont concernés. Les nœuds en cours d'exécution ne sont pas rapprochés. Pour activer la fonctionnalité sur tous les nœuds, vous devez remplacer chaque machine existante. Cette opération peut être effectuée pour chaque machine individuellement, ou en réduisant le nombre de réplicas à zéro, puis en l'augmentant jusqu'au nombre de réplicas souhaité.
2.3.10. Ajouter un nœud GPU à un cluster OpenShift Container Platform existant Copier lienLien copié sur presse-papiers!
Vous pouvez copier et modifier la configuration d'un ensemble de machines de calcul par défaut pour créer un ensemble de machines et des machines compatibles avec le GPU pour le fournisseur de cloud Azure.
Le tableau suivant énumère les types d'instance validés :
| vmSize | Accélérateur GPU NVIDIA | Nombre maximal de GPU | L'architecture |
|---|---|---|---|
|
| V100 | 4 | x86 |
|
| T4 | 1 | x86 |
|
| A100 | 8 | x86 |
Par défaut, les abonnements Azure n'ont pas de quota pour les types d'instances Azure avec GPU. Les clients doivent demander une augmentation de quota pour les familles d'instances Azure listées ci-dessus.
Procédure
Affichez les machines et les ensembles de machines qui existent dans l'espace de noms
openshift-machine-apien exécutant la commande suivante. Chaque ensemble de machines de calcul est associé à une zone de disponibilité différente dans la région Azure. Le programme d'installation équilibre automatiquement la charge des machines de calcul entre les zones de disponibilité.oc get machineset -n openshift-machine-api
$ oc get machineset -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME DESIRED CURRENT READY AVAILABLE AGE myclustername-worker-centralus1 1 1 1 1 6h9m myclustername-worker-centralus2 1 1 1 1 6h9m myclustername-worker-centralus3 1 1 1 1 6h9m
NAME DESIRED CURRENT READY AVAILABLE AGE myclustername-worker-centralus1 1 1 1 1 6h9m myclustername-worker-centralus2 1 1 1 1 6h9m myclustername-worker-centralus3 1 1 1 1 6h9mCopy to Clipboard Copied! Toggle word wrap Toggle overflow Faites une copie de l'une des définitions de compute
MachineSetexistantes et produisez le résultat dans un fichier YAML en exécutant la commande suivante. Ce fichier servira de base à la définition de l'ensemble de machines de calcul compatibles avec le GPU.oc get machineset -n openshift-machine-api myclustername-worker-centralus1 -o yaml > machineset-azure.yaml
$ oc get machineset -n openshift-machine-api myclustername-worker-centralus1 -o yaml > machineset-azure.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Voir le contenu du jeu de machines :
cat machineset-azure.yaml
$ cat machineset-azure.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de fichier
machineset-azure.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Faites une copie du fichier
machineset-azure.yamlen exécutant la commande suivante :cp machineset-azure.yaml machineset-azure-gpu.yaml
$ cp machineset-azure.yaml machineset-azure-gpu.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Mettez à jour les champs suivants dans
machineset-azure-gpu.yaml:-
Remplacer
.metadata.namepar un nom contenantgpu. -
Modifier
.spec.selector.matchLabels["machine.openshift.io/cluster-api-machineset"]pour qu'il corresponde au nouveau nom .metadata. -
Modifier
.spec.template.metadata.labels["machine.openshift.io/cluster-api-machineset"]pour qu'il corresponde au nouveau.metadata.name. Remplacer
.spec.template.spec.providerSpec.value.vmSizeparStandard_NC4as_T4_v3.Exemple de fichier
machineset-azure-gpu.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Remplacer
Pour vérifier vos modifications, exécutez la commande suivante :
diffde la définition originale du calcul et de la nouvelle définition du nœud compatible avec le GPU :diff machineset-azure.yaml machineset-azure-gpu.yaml
$ diff machineset-azure.yaml machineset-azure-gpu.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez l'ensemble de machines de calcul compatibles avec le GPU à partir du fichier de définition en exécutant la commande suivante :
oc create -f machineset-azure-gpu.yaml
$ oc create -f machineset-azure-gpu.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
machineset.machine.openshift.io/myclustername-nc4ast4-gpu-worker-centralus1 created
machineset.machine.openshift.io/myclustername-nc4ast4-gpu-worker-centralus1 createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow Affichez les machines et les ensembles de machines qui existent dans l'espace de noms
openshift-machine-apien exécutant la commande suivante. Chaque ensemble de machines de calcul est associé à une zone de disponibilité différente dans la région Azure. Le programme d'installation équilibre automatiquement la charge des machines de calcul entre les zones de disponibilité.oc get machineset -n openshift-machine-api
$ oc get machineset -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME DESIRED CURRENT READY AVAILABLE AGE clustername-n6n4r-nc4ast4-gpu-worker-centralus1 1 1 1 1 122m clustername-n6n4r-worker-centralus1 1 1 1 1 8h clustername-n6n4r-worker-centralus2 1 1 1 1 8h clustername-n6n4r-worker-centralus3 1 1 1 1 8h
NAME DESIRED CURRENT READY AVAILABLE AGE clustername-n6n4r-nc4ast4-gpu-worker-centralus1 1 1 1 1 122m clustername-n6n4r-worker-centralus1 1 1 1 1 8h clustername-n6n4r-worker-centralus2 1 1 1 1 8h clustername-n6n4r-worker-centralus3 1 1 1 1 8hCopy to Clipboard Copied! Toggle word wrap Toggle overflow Affichez les machines qui existent dans l'espace de noms
openshift-machine-apien exécutant la commande suivante. Vous ne pouvez configurer qu'une machine de calcul par ensemble, mais vous pouvez faire évoluer un ensemble de machines de calcul pour ajouter un nœud dans une région et une zone particulières.oc get machines -n openshift-machine-api
$ oc get machines -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Affichez les nœuds, les machines et les jeux de machines existants en exécutant la commande suivante. Notez que chaque nœud est une instance d'une définition de machine avec une région Azure et un rôle OpenShift Container Platform spécifiques.
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Afficher la liste des ensembles de machines de calcul :
oc get machineset -n openshift-machine-api
$ oc get machineset -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME DESIRED CURRENT READY AVAILABLE AGE myclustername-worker-centralus1 1 1 1 1 8h myclustername-worker-centralus2 1 1 1 1 8h myclustername-worker-centralus3 1 1 1 1 8h
NAME DESIRED CURRENT READY AVAILABLE AGE myclustername-worker-centralus1 1 1 1 1 8h myclustername-worker-centralus2 1 1 1 1 8h myclustername-worker-centralus3 1 1 1 1 8hCopy to Clipboard Copied! Toggle word wrap Toggle overflow Créez l'ensemble de machines de calcul compatibles avec le GPU à partir du fichier de définition en exécutant la commande suivante :
oc create -f machineset-azure-gpu.yaml
$ oc create -f machineset-azure-gpu.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Afficher la liste des ensembles de machines de calcul :
oc get machineset -n openshift-machine-api
oc get machineset -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME DESIRED CURRENT READY AVAILABLE AGE myclustername-nc4ast4-gpu-worker-centralus1 1 1 1 1 121m myclustername-worker-centralus1 1 1 1 1 8h myclustername-worker-centralus2 1 1 1 1 8h myclustername-worker-centralus3 1 1 1 1 8h
NAME DESIRED CURRENT READY AVAILABLE AGE myclustername-nc4ast4-gpu-worker-centralus1 1 1 1 1 121m myclustername-worker-centralus1 1 1 1 1 8h myclustername-worker-centralus2 1 1 1 1 8h myclustername-worker-centralus3 1 1 1 1 8hCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Vérification
Affichez le jeu de machines que vous avez créé en exécutant la commande suivante :
oc get machineset -n openshift-machine-api | grep gpu
$ oc get machineset -n openshift-machine-api | grep gpuCopy to Clipboard Copied! Toggle word wrap Toggle overflow Le nombre de répliques de MachineSet étant fixé à
1, un nouvel objetMachineest créé automatiquement.Exemple de sortie
myclustername-nc4ast4-gpu-worker-centralus1 1 1 1 1 121m
myclustername-nc4ast4-gpu-worker-centralus1 1 1 1 1 121mCopy to Clipboard Copied! Toggle word wrap Toggle overflow Affichez l'objet
Machinecréé par le jeu de machines en exécutant la commande suivante :oc -n openshift-machine-api get machines | grep gpu
$ oc -n openshift-machine-api get machines | grep gpuCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
myclustername-nc4ast4-gpu-worker-centralus1-w9bqn Running Standard_NC4as_T4_v3 centralus 1 21m
myclustername-nc4ast4-gpu-worker-centralus1-w9bqn Running Standard_NC4as_T4_v3 centralus 1 21mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Il n'est pas nécessaire de spécifier un espace de noms pour le nœud. La définition du nœud est limitée à la grappe.
2.3.11. Déploiement de l'opérateur de découverte de fonctionnalités des nœuds Copier lienLien copié sur presse-papiers!
Une fois le nœud compatible avec le GPU créé, vous devez le découvrir afin de pouvoir le planifier. Pour ce faire, installez l'opérateur NFD (Node Feature Discovery). L'opérateur NFD identifie les caractéristiques des dispositifs matériels dans les nœuds. Il résout le problème général de l'identification et du catalogage des ressources matérielles dans les nœuds d'infrastructure afin qu'elles puissent être mises à la disposition d'OpenShift Container Platform.
Procédure
- Installez l'opérateur de découverte de fonctionnalités Node à partir de OperatorHub dans la console OpenShift Container Platform.
-
Après avoir installé l'opérateur NFD dans OperatorHub, sélectionnez Node Feature Discovery dans la liste des opérateurs installés et sélectionnez Create instance. Ceci installe les pods
nfd-masteretnfd-worker, un podnfd-workerpour chaque nœud de calcul, dans l'espace de nomsopenshift-nfd. Vérifiez que l'opérateur est installé et fonctionne en exécutant la commande suivante :
oc get pods -n openshift-nfd
$ oc get pods -n openshift-nfdCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME READY STATUS RESTARTS AGE nfd-controller-manager-8646fcbb65-x5qgk 2/2 Running 7 (8h ago) 1d
NAME READY STATUS RESTARTS AGE nfd-controller-manager-8646fcbb65-x5qgk 2/2 Running 7 (8h ago) 1dCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Recherchez l'Oerator installé dans la console et sélectionnez Create Node Feature Discovery.
-
Sélectionnez Create pour créer une ressource personnalisée NFD. Cela crée des pods NFD dans l'espace de noms
openshift-nfdqui interrogent les nœuds OpenShift Container Platform à la recherche de ressources matérielles et les cataloguent.
Vérification
Après une construction réussie, vérifiez qu'un pod NFD fonctionne sur chaque nœud en exécutant la commande suivante :
oc get pods -n openshift-nfd
$ oc get pods -n openshift-nfdCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME READY STATUS RESTARTS AGE nfd-controller-manager-8646fcbb65-x5qgk 2/2 Running 7 (8h ago) 12d nfd-master-769656c4cb-w9vrv 1/1 Running 0 12d nfd-worker-qjxb2 1/1 Running 3 (3d14h ago) 12d nfd-worker-xtz9b 1/1 Running 5 (3d14h ago) 12d
NAME READY STATUS RESTARTS AGE nfd-controller-manager-8646fcbb65-x5qgk 2/2 Running 7 (8h ago) 12d nfd-master-769656c4cb-w9vrv 1/1 Running 0 12d nfd-worker-qjxb2 1/1 Running 3 (3d14h ago) 12d nfd-worker-xtz9b 1/1 Running 5 (3d14h ago) 12dCopy to Clipboard Copied! Toggle word wrap Toggle overflow L'opérateur NFD utilise les identifiants PCI des fournisseurs pour identifier le matériel dans un nœud. NVIDIA utilise l'ID PCI
10de.Affichez le GPU NVIDIA découvert par l'opérateur NFD en exécutant la commande suivante :
oc describe node ip-10-0-132-138.us-east-2.compute.internal | egrep 'Roles|pci'
$ oc describe node ip-10-0-132-138.us-east-2.compute.internal | egrep 'Roles|pci'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 10deapparaît dans la liste des caractéristiques du nœud compatible avec le GPU. Cela signifie que l'opérateur NFD a correctement identifié le nœud de l'ensemble de machines équipé d'un GPU.
2.3.11.1. Activation de l'Accelerated Networking sur un cluster Microsoft Azure existant Copier lienLien copié sur presse-papiers!
Vous pouvez activer Accelerated Networking sur Azure en ajoutant acceleratedNetworking à votre fichier YAML machine set.
Conditions préalables
- Disposer d'un cluster Microsoft Azure existant où l'API Machine est opérationnelle.
Procédure
Ajoutez ce qui suit au champ
providerSpec:providerSpec: value: acceleratedNetworking: true vmSize: <azure-vm-size>providerSpec: value: acceleratedNetworking: true1 vmSize: <azure-vm-size>2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- This line enables Accelerated Networking.
- 2
- Specify an Azure VM size that includes at least four vCPUs. For information about VM sizes, see Microsoft Azure documentation.
Prochaines étapes
- Pour activer la fonctionnalité sur les nœuds en cours d'exécution, vous devez remplacer chaque machine existante. Cette opération peut être effectuée pour chaque machine individuellement, ou en réduisant les répliques à zéro, puis en les augmentant jusqu'au nombre de répliques souhaité.
Vérification
-
Sur le portail Microsoft Azure, consultez la page des paramètres Networking pour une machine approvisionnée par le jeu de machines et vérifiez que le champ
Accelerated networkingest défini surEnabled.