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
Avertissement

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.

Important

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

  1. Dans la console web, sélectionnez Quick Starts dans le menu Aide.
  2. Cliquez sur une tuile du catalogue Quick Starts. Par exemple : Creating a Red Hat Linux Enterprise Linux virtual machine.
  3. 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

  1. Cliquez sur Virtualization Catalog dans le menu latéral.
  2. Cliquez sur Boot source available pour filtrer les modèles avec les sources de démarrage.

    Note

    Par 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.

  3. Cliquez sur un modèle pour en afficher les détails.
  4. 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

  1. Cliquez sur Events pour afficher un flux d'événements au fur et à mesure que la VM est approvisionnée.
  2. 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

  1. Dans la console web, sélectionnez un modèle :

    1. Cliquez sur Virtualization Catalog dans le menu latéral.
    2. Facultatif : Filtrez les modèles par projet, mot-clé, système d'exploitation ou profil de charge de travail.
    3. Cliquez sur le modèle que vous souhaitez personnaliser.
  2. Cliquez sur Customize VirtualMachine.
  3. 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

  1. Cliquez sur Events pour afficher un flux d'événements au fur et à mesure que la VM est approvisionnée.
  2. 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

NomDescription

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 :

  • Réseau de pods par défaut : masquerade
  • Réseau de ponts Linux : bridge
  • Réseau SR-IOV : SR-IOV

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

NomLa sélectionDescription

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 (a-z), des chiffres (0-9), des traits d'union (-) et des points (.), jusqu'à un maximum de 253 caractères. Le premier et le dernier caractères doivent être alphanumériques. Le nom ne doit pas contenir de majuscules, d'espaces ou de caractères spéciaux.

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.

Note

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.

NomDescription du modeParamètresDescription 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 Block que si le stockage sous-jacent le prend en charge.

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

NomDescription

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.

Note

Le fait de quitter l'écran YAML en cours d'édition annule toutes les modifications apportées à la configuration.

Procédure

  1. Cliquez sur Virtualization VirtualMachines dans le menu latéral.
  2. Cliquez sur Create et sélectionnez With YAML.
  3. Écrivez ou collez votre configuration de machine virtuelle dans la fenêtre éditable.

    1. Vous pouvez également utiliser la machine virtuelle example fournie par défaut dans l'écran YAML.
  4. Facultatif : Cliquez sur Download pour télécharger le fichier de configuration YAML dans son état actuel.
  5. 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

  1. 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
    1
    Indiquez le nom de la machine virtuelle.
    2
    Spécifiez le mot de passe pour cloud-user.
  2. Créez une machine virtuelle en utilisant le fichier manifeste :

    oc create -f <vm_manifest_file>.yaml
  3. 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 stockageDescription

é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 persistentVolumeClaim en gérant le processus de préparation du disque de la machine virtuelle via une opération d'importation, de clonage ou de téléchargement. Les machines virtuelles qui utilisent ce type de volume sont assurées de ne pas démarrer tant que le volume n'est pas prêt.

Spécifiez type: dataVolume ou type: "". Si vous spécifiez une autre valeur pour type, telle que persistentVolumeClaim, un avertissement s'affiche et la machine virtuelle ne démarre pas.

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 containerDisk n'est pas limité à une seule machine virtuelle et est utile pour créer un grand nombre de clones de machines virtuelles qui ne nécessitent pas de stockage permanent.

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 containerDisk est éphémère. Il est supprimé lorsque la machine virtuelle est arrêtée, redémarrée ou supprimée. Un volume containerDisk est utile pour les systèmes de fichiers en lecture seule tels que les CD-ROM ou pour les machines virtuelles jetables.

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, et restart 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 initialecommencerarrêterredémarrer

Always

-

Arrêté

Always

RerunOnFailure

-

Arrêté

RerunOnFailure

Manuel

Manuel

Manuel

Manuel

Arrêté

Always

-

-

Note

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.

    Note

    La 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
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.