10.5. Exporter des machines virtuelles


Vous pouvez exporter une machine virtuelle (VM) et ses disques associés afin d'importer une VM dans un autre cluster ou d'analyser le volume à des fins médico-légales.

Vous créez une ressource personnalisée (CR) VirtualMachineExport à l'aide de l'interface de ligne de commande.

Vous pouvez également utiliser la commandevirtctl vmexport pour créer un CR VirtualMachineExport et télécharger les volumes exportés.

10.5.1. Création d'une ressource personnalisée VirtualMachineExport

Vous pouvez créer une ressource personnalisée (CR) VirtualMachineExport pour exporter les objets suivants :

  • Machine virtuelle (VM) : Exporte les réclamations de volumes persistants (PVC) d'une VM spécifiée.
  • Instantané de VM : Exporte les PVC contenus dans un CR VirtualMachineSnapshot.
  • PVC : Exporte un PVC. Si le PVC est utilisé par un autre pod, tel que le pod virt-launcher, l'exportation reste dans l'état Pending jusqu'à ce que le PVC ne soit plus utilisé.

Le CR VirtualMachineExport crée des liens internes et externes pour les volumes exportés. Les liens internes sont valables au sein du cluster. Les liens externes sont accessibles à l'aide d'un CR Ingress ou Route.

Le serveur d'exportation prend en charge les formats de fichiers suivants :

  • raw: Fichier image disque brut.
  • gzip: Fichier image disque compressé.
  • dir: Répertoire et fichiers PVC.
  • tar.gz: Fichier PVC compressé.

Conditions préalables

  • La machine virtuelle doit être arrêtée pour l'exportation de la machine virtuelle.

Procédure

  1. Créez un manifeste VirtualMachineExport pour exporter un volume à partir d'un CR VirtualMachine, VirtualMachineSnapshot ou PersistentVolumeClaim selon l'exemple suivant et enregistrez-le sous example-export.yaml:

    VirtualMachineExport exemple

    apiVersion: export.kubevirt.io/v1alpha1
    kind: VirtualMachineExport
    metadata:
      name: example-export
    spec:
      source:
        apiGroup: "kubevirt.io" 1
        kind: VirtualMachine 2
        name: example-vm
      ttlDuration: 1h 3

    1
    Spécifiez le groupe API approprié :
    • "kubevirt.io" pour VirtualMachine.
    • "snapshot.kubevirt.io" pour VirtualMachineSnapshot.
    • "" pour PersistentVolumeClaim.
    2
    Spécifiez VirtualMachine, VirtualMachineSnapshot, ou PersistentVolumeClaim.
    3
    Facultatif. La durée par défaut est de 2 heures.
  2. Créer le CR VirtualMachineExport:

    $ oc create -f example-export.yaml
  3. Obtenez le CR VirtualMachineExport:

    $ oc get vmexport example-export -o yaml

    Les liens internes et externes des volumes exportés sont affichés dans la strophe status:

    Exemple de sortie

    apiVersion: export.kubevirt.io/v1alpha1
    kind: VirtualMachineExport
    metadata:
      name: example-export
      namespace: example
    spec:
      source:
        apiGroup: ""
        kind: PersistentVolumeClaim
        name: example-pvc
      tokenSecretRef: example-token
    status:
      conditions:
      - lastProbeTime: null
        lastTransitionTime: "2022-06-21T14:10:09Z"
        reason: podReady
        status: "True"
        type: Ready
      - lastProbeTime: null
        lastTransitionTime: "2022-06-21T14:09:02Z"
        reason: pvcBound
        status: "True"
        type: PVCReady
      links:
        external: 1
          cert: |-
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          volumes:
          - formats:
            - format: raw
              url: https://vmexport-proxy.test.net/api/export.kubevirt.io/v1alpha1/namespaces/example/virtualmachineexports/example-export/volumes/example-disk/disk.img
            - format: gzip
              url: https://vmexport-proxy.test.net/api/export.kubevirt.io/v1alpha1/namespaces/example/virtualmachineexports/example-export/volumes/example-disk/disk.img.gz
            name: example-disk
        internal:  2
          cert: |-
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
          volumes:
          - formats:
            - format: raw
              url: https://virt-export-example-export.example.svc/volumes/example-disk/disk.img
            - format: gzip
              url: https://virt-export-example-export.example.svc/volumes/example-disk/disk.img.gz
            name: example-disk
      phase: Ready
      serviceName: virt-export-example-export

    1
    Les liens externes sont accessibles depuis l'extérieur du cluster à l'aide d'un Ingress ou d'un Route.
    2
    Les liens internes ne sont valables qu'à l'intérieur du cluster.
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.