Chapitre 10. Machines virtuelles
10.1. Création de machines virtuelles
Utilisez l'une des procédures suivantes pour créer une machine virtuelle :
- Visite guidée de démarrage rapide
- Création rapide à partir du Catalog
- Coller un fichier YAML préconfiguré avec l'assistant de machine virtuelle
- Utilisation de l'interface de programmation
Ne créez pas de machines virtuelles dans les espaces de noms openshift-*
. Créez plutôt un nouvel espace de noms ou utilisez un espace de noms existant sans le préfixe openshift
.
Lorsque vous créez des machines virtuelles à partir de la console Web, sélectionnez un modèle de machine virtuelle configuré avec une source de démarrage. Les modèles de machine virtuelle avec une source de démarrage sont étiquetés comme Available boot source ou ils affichent un texte d'étiquette personnalisé. L'utilisation de modèles avec une source de démarrage disponible accélère le processus de création de machines virtuelles.
Les modèles sans source de démarrage sont étiquetés comme Boot source required. Vous pouvez utiliser ces modèles si vous suivez les étapes pour ajouter une source de démarrage à la machine virtuelle.
En raison de différences dans le comportement de stockage, certains modèles de machines virtuelles sont incompatibles avec OpenShift à nœud unique. Pour assurer la compatibilité, ne définissez pas le champ evictionStrategy
pour les modèles ou les machines virtuelles qui utilisent des volumes de données ou des profils de stockage.
10.1.1. Utilisation d'un démarrage rapide pour créer une machine virtuelle
La console Web fournit des démarrages rapides avec des visites guidées pour la création de machines virtuelles. Vous pouvez accéder au catalogue Quick Starts en sélectionnant le menu Help dans la perspective Administrator pour afficher le catalogue Quick Starts. Lorsque vous cliquez sur une tuile de démarrage rapide et que vous commencez la visite, le système vous guide tout au long du processus.
Les tâches d'un démarrage rapide commencent par la sélection d'un modèle Red Hat. Ensuite, vous pouvez ajouter une source de démarrage et importer l'image du système d'exploitation. Enfin, vous pouvez enregistrer le modèle personnalisé et l'utiliser pour créer une machine virtuelle.
Conditions préalables
- Accès au site web où vous pouvez télécharger le lien URL de l'image du système d'exploitation.
Procédure
- Dans la console web, sélectionnez Quick Starts dans le menu Aide.
- Cliquez sur une tuile du catalogue Quick Starts. Par exemple : Creating a Red Hat Linux Enterprise Linux virtual machine.
-
Suivez les instructions de la visite guidée et effectuez les tâches d'importation d'une image de système d'exploitation et de création d'une machine virtuelle. La page Virtualization
VirtualMachines affiche la machine virtuelle.
10.1.2. Création rapide d'une machine virtuelle
Vous pouvez créer rapidement une machine virtuelle (VM) en utilisant un modèle avec une source de démarrage disponible.
Procédure
-
Cliquez sur Virtualization
Catalog dans le menu latéral. Cliquez sur Boot source available pour filtrer les modèles avec les sources de démarrage.
NotePar défaut, la liste des modèles n'affiche que Default Templates. Cliquez sur All Items lors du filtrage pour afficher tous les modèles disponibles pour les filtres que vous avez choisis.
- Cliquez sur un modèle pour en afficher les détails.
Cliquez sur Quick Create VirtualMachine pour créer une VM à partir du modèle.
La page de la machine virtuelle Details s'affiche avec l'état du provisionnement.
Vérification
- Cliquez sur Events pour afficher un flux d'événements au fur et à mesure que la VM est approvisionnée.
- Cliquez sur Console pour vérifier que la VM a bien démarré.
10.1.3. Création d'une machine virtuelle à partir d'un modèle personnalisé
Certains modèles nécessitent des paramètres supplémentaires, par exemple un PVC avec une source de démarrage. Vous pouvez personnaliser certains paramètres d'un modèle pour créer une machine virtuelle (VM).
Procédure
Dans la console web, sélectionnez un modèle :
-
Cliquez sur Virtualization
Catalog dans le menu latéral. - Facultatif : Filtrez les modèles par projet, mot-clé, système d'exploitation ou profil de charge de travail.
- Cliquez sur le modèle que vous souhaitez personnaliser.
-
Cliquez sur Virtualization
- Cliquez sur Customize VirtualMachine.
- Spécifiez les paramètres de votre VM, y compris ses adresses Name et Disk source. Vous pouvez éventuellement spécifier une source de données à cloner.
Vérification
- Cliquez sur Events pour afficher un flux d'événements au fur et à mesure que la VM est approvisionnée.
- Cliquez sur Console pour vérifier que la VM a bien démarré.
Reportez-vous à la section relative aux champs de la machine virtuelle lors de la création d'une VM à partir de la console web.
10.1.3.1. Domaines de mise en réseau
Nom | Description |
---|---|
Nom | Nom du contrôleur d'interface réseau. |
Model | Indique le modèle du contrôleur d'interface réseau. Les valeurs prises en charge sont e1000e et virtio. |
Réseau | Liste des définitions de pièces jointes disponibles. |
Type | Liste des méthodes de liaison disponibles. Sélectionnez la méthode de liaison adaptée à l'interface réseau :
|
Adresse MAC | Adresse MAC du contrôleur d'interface réseau. Si aucune adresse MAC n'est spécifiée, une adresse est attribuée automatiquement. |
10.1.3.2. Champs de stockage
Nom | La sélection | Description |
---|---|---|
Source | Vierge (crée du PVC) | Créer un disque vide. |
Importation par URL (crée un PVC) | Importer du contenu via une URL (HTTP ou HTTPS). | |
Utiliser un PVC existant | Utiliser un PVC déjà disponible dans le cluster. | |
Cloner un PVC existant (crée un PVC) | Sélectionnez un PVC existant disponible dans le cluster et clonez-le. | |
Importation via le registre (création de PVC) | Importer du contenu via le registre des conteneurs. | |
Conteneur (éphémère) | Télécharger le contenu d'un conteneur situé dans un registre accessible depuis le cluster. Le disque conteneur ne doit être utilisé que pour les systèmes de fichiers en lecture seule, tels que les CD-ROM ou les machines virtuelles temporaires. | |
Nom |
Nom du disque. Le nom peut contenir des lettres minuscules ( | |
Taille | Taille du disque en gigaoctets. | |
Type | Type de disque. Exemple : Disque ou CD-ROM | |
Interface | Type de périphérique de disque. Les interfaces prises en charge sont virtIO, SATA et SCSI. | |
Classe de stockage | La classe de stockage utilisée pour créer le disque. |
Paramètres de stockage avancés
Les paramètres de stockage avancés suivants sont facultatifs et disponibles pour les disques Blank, Import via URL, et Clone existing PVC. Avant OpenShift Virtualization 4.11, si vous ne spécifiez pas ces paramètres, le système utilise les valeurs par défaut de la carte de configuration kubevirt-storage-class-defaults
. Dans OpenShift Virtualization 4.11 et les versions ultérieures, le système utilise les valeurs par défaut du profil de stockage.
Utilisez les profils de stockage pour garantir des paramètres de stockage avancés cohérents lors du provisionnement du stockage pour OpenShift Virtualization.
Pour spécifier manuellement Volume Mode et Access Mode, vous devez décocher la case Apply optimized StorageProfile settings, qui est sélectionnée par défaut.
Nom | Description du mode | Paramètres | Description des paramètres |
---|---|---|---|
Mode volume | Définit si le volume persistant utilise un système de fichiers formaté ou un état de bloc brut. La valeur par défaut est Filesystem. | Système de fichiers | Stocke le disque virtuel sur un volume basé sur un système de fichiers. |
Bloc |
Enregistre le disque virtuel directement sur le volume de blocs. N'utilisez | ||
Mode d'accès | Mode d'accès au volume persistant. | ReadWriteOnce (RWO) | Le volume peut être monté en lecture-écriture par un seul nœud. |
ReadWriteMany (RWX) | Le volume peut être monté en lecture-écriture par plusieurs nœuds à la fois. Note Cela est nécessaire pour certaines fonctionnalités, telles que la migration en direct des machines virtuelles entre les nœuds. | ||
ReadOnlyMany (ROX) | Le volume peut être monté en lecture seule par plusieurs nœuds. |
10.1.3.3. Champs d'initialisation du nuage
Nom | Description |
---|---|
Clés SSH autorisées | La clé publique de l'utilisateur qui est copiée sur ~/.ssh/authorized_keys sur la machine virtuelle. |
Script personnalisé | Remplace les autres options par un champ dans lequel vous pouvez coller un script personnalisé de démarrage du nuage. |
Pour configurer les valeurs par défaut des classes de stockage, utilisez les profils de stockage. Pour plus d'informations, voir Personnaliser le profil de stockage.
10.1.3.4. Coller un fichier YAML préconfiguré pour créer une machine virtuelle
Créez une machine virtuelle en écrivant ou en collant un fichier de configuration YAML. Une configuration de machine virtuelle example
valide est fournie par défaut chaque fois que vous ouvrez l'écran d'édition YAML.
Si votre configuration YAML n'est pas valide lorsque vous cliquez sur Create, un message d'erreur indique le paramètre dans lequel l'erreur se produit. Une seule erreur est affichée à la fois.
Le fait de quitter l'écran YAML en cours d'édition annule toutes les modifications apportées à la configuration.
Procédure
-
Cliquez sur Virtualization
VirtualMachines dans le menu latéral. - Cliquez sur Create et sélectionnez With YAML.
Écrivez ou collez votre configuration de machine virtuelle dans la fenêtre éditable.
-
Vous pouvez également utiliser la machine virtuelle
example
fournie par défaut dans l'écran YAML.
-
Vous pouvez également utiliser la machine virtuelle
- Facultatif : Cliquez sur Download pour télécharger le fichier de configuration YAML dans son état actuel.
- Cliquez sur Create pour créer la machine virtuelle.
La machine virtuelle est répertoriée sur la page VirtualMachines.
10.1.4. Utilisation de l'interface de programmation pour créer une machine virtuelle
Vous pouvez créer une machine virtuelle à partir d'un manifeste virtualMachine
.
Procédure
Modifiez le manifeste
VirtualMachine
pour votre VM. Par exemple, le manifeste suivant configure une VM Red Hat Enterprise Linux (RHEL) :Exemple 10.1. Exemple de manifeste pour une VM RHEL
apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: labels: app: <vm_name> 1 name: <vm_name> spec: dataVolumeTemplates: - apiVersion: cdi.kubevirt.io/v1beta1 kind: DataVolume metadata: name: <vm_name> spec: sourceRef: kind: DataSource name: rhel9 namespace: openshift-virtualization-os-images storage: resources: requests: storage: 30Gi running: false template: metadata: labels: kubevirt.io/domain: <vm_name> spec: domain: cpu: cores: 1 sockets: 2 threads: 1 devices: disks: - disk: bus: virtio name: rootdisk - disk: bus: virtio name: cloudinitdisk interfaces: - masquerade: {} name: default rng: {} features: smm: enabled: true firmware: bootloader: efi: {} resources: requests: memory: 8Gi evictionStrategy: LiveMigrate networks: - name: default pod: {} volumes: - dataVolume: name: <vm_name> name: rootdisk - cloudInitNoCloud: userData: |- #cloud-config user: cloud-user password: '<password>' 2 chpasswd: { expire: False } name: cloudinitdisk
Créez une machine virtuelle en utilisant le fichier manifeste :
oc create -f <vm_manifest_file>.yaml
Facultatif : Démarrer la machine virtuelle :
virtctl start <vm_name>
10.1.5. Types de volumes de stockage de la machine virtuelle
Type de volume de stockage | Description |
---|---|
éphémère | Une image COW (copy-on-write) locale qui utilise un volume réseau comme magasin de sauvegarde en lecture seule. Le volume de sauvegarde doit être un PersistentVolumeClaim. L'image éphémère est créée au démarrage de la machine virtuelle et stocke toutes les écritures localement. L'image éphémère est supprimée lorsque la machine virtuelle est arrêtée, redémarrée ou supprimée. Le volume de sauvegarde (PVC) n'est en aucun cas modifié. |
réclamation persistante sur les volumes | Attache un PV disponible à une machine virtuelle. L'attachement d'un PV permet aux données de la machine virtuelle de persister entre les sessions. L'importation d'un disque de machine virtuelle existant dans un PVC en utilisant CDI et en attachant le PVC à une instance de machine virtuelle est la méthode recommandée pour importer des machines virtuelles existantes dans OpenShift Container Platform. Certaines conditions sont requises pour que le disque puisse être utilisé dans un PVC. |
donnéesVolume |
Les volumes de données s'appuient sur le type de disque
Spécifiez |
cloudInitNoCloud | Attache un disque qui contient la source de données NoCloud référencée cloud-init, fournissant des données utilisateur et des métadonnées à la machine virtuelle. Une installation cloud-init est requise à l'intérieur du disque de la machine virtuelle. |
containerDisk | Fait référence à une image, telle qu'un disque de machine virtuelle, qui est stockée dans le registre d'images du conteneur. L'image est extraite du registre et attachée à la machine virtuelle en tant que disque lorsque la machine virtuelle est lancée.
Un volume Seuls les formats RAW et QCOW2 sont des types de disques pris en charge pour le registre des images de conteneurs. Le format QCOW2 est recommandé pour réduire la taille de l'image. Note
Un volume |
emptyDisk | Crée un disque QCOW2 clair supplémentaire lié au cycle de vie de l'interface de la machine virtuelle. Les données survivent aux redémarrages de la machine virtuelle initiés par l'invité, mais sont supprimées lorsque la machine virtuelle s'arrête ou est redémarrée à partir de la console web. Le disque vide est utilisé pour stocker les dépendances des applications et les données qui dépassent autrement le système de fichiers temporaires limité d'un disque éphémère. La taille du disque capacity doit également être indiquée. |
10.1.6. À propos des stratégies d'exécution pour les machines virtuelles
Le paramètre RunStrategy
pour les machines virtuelles détermine le comportement d'une instance de machine virtuelle (VMI) en fonction d'une série de conditions. Le paramètre spec.runStrategy
existe dans le processus de configuration de la machine virtuelle en tant qu'alternative au paramètre spec.running
. Le paramètre spec.runStrategy
permet une plus grande flexibilité dans la création et la gestion des IMV, contrairement au paramètre spec.running
qui ne permet que des réponses true
ou false
. Toutefois, les deux paramètres s'excluent mutuellement. Seuls spec.running
ou spec.runStrategy
peuvent être utilisés. Une erreur se produit si les deux sont utilisés.
Il existe quatre stratégies d'exécution définies.
Always
-
Une VMI est toujours présente lorsqu'une machine virtuelle est créée. Une nouvelle VMI est créée si l'originale s'arrête pour quelque raison que ce soit, ce qui correspond au comportement de
spec.running: true
. RerunOnFailure
- Une IMV est recréée si l'instance précédente échoue en raison d'une erreur. L'instance n'est pas recréée si la machine virtuelle s'arrête avec succès, par exemple lorsqu'elle s'éteint.
Manual
-
Les commandes client virtctl
start
,stop
, etrestart
peuvent être utilisées pour contrôler l'état et l'existence de la VMI. Halted
-
Aucune VMI n'est présente lors de la création d'une machine virtuelle, ce qui correspond au comportement de
spec.running: false
.
Différentes combinaisons des commandes virtctl start
, stop
et restart
déterminent l'utilisation de RunStrategy
.
Le tableau suivant retrace la transition d'une VM entre différents états. La première colonne indique l'état initial de la VM : RunStrategy
. Chaque colonne supplémentaire montre une commande virtctl et le nouveau site RunStrategy
après l'exécution de cette commande.
Stratégie d'exécution initiale | commencer | arrêter | redémarrer |
---|---|---|---|
Always | - | Arrêté | Always |
RerunOnFailure | - | Arrêté | RerunOnFailure |
Manuel | Manuel | Manuel | Manuel |
Arrêté | Always | - | - |
Dans les clusters OpenShift Virtualization installés à l'aide d'une infrastructure fournie par l'installateur, lorsqu'un nœud échoue au MachineHealthCheck et devient indisponible pour le cluster, les VM dont la stratégie d'exécution est Always
ou RerunOnFailure
sont replanifiées sur un nouveau nœud.
apiVersion: kubevirt.io/v1
kind: VirtualMachine
spec:
RunStrategy: Always 1
template:
...
- 1
- Le paramètre actuel de l'IMV
RunStrategy
.
10.1.7. Ressources supplémentaires
La définition de
VirtualMachineSpec
dans la référence API de KubeVirt v0.58.0 fournit un contexte plus large pour les paramètres et la hiérarchie de la spécification de la machine virtuelle.NoteLa référence de l'API KubeVirt est la référence du projet en amont et peut contenir des paramètres qui ne sont pas pris en charge dans OpenShift Virtualization.
- Activez le gestionnaire de CPU pour qu'il utilise le profil de charge de travail haute performance.
-
Voir Préparer un disque de conteneur avant de l'ajouter à une machine virtuelle en tant que volume
containerDisk
. - Pour plus d'informations sur le déploiement et l'activation des contrôles de santé des machines, voir Déploiement des contrôles de santé des machines.
- Pour plus de détails sur l'infrastructure fournie par l'installateur, voir Aperçu de l'infrastructure fournie par l' installateur.
- Personnalisation du profil de stockage