Créer et gérer des disques virtuels dans des clusters Anthos sur solution Bare Metal

Ce document est destiné aux propriétaires d'applications qui exécutent des clusters Anthos sur solution Bare Metal. Ce document explique comment créer et gérer des ressources de disque pour les machines virtuelles (VM) qui utilisent l'environnement d'exécution des VM Anthos.

Avant de commencer

Pour terminer ce document, vous devez disposer des ressources suivantes :

Créer une VM avec un disque associé

Lorsque vous créez une VM, vous pouvez associer un disque de démarrage ou de données existant, créer un disque à partir d'une image (y compris pour le disque de démarrage) ou créer un disque vide.

Disque vide

Dans ce scénario, vous créez un disque vide et vous l'associez à la VM. Ce scénario vous permet de créer un disque de données afin de stocker les données de votre application.

  1. Créez un fichier manifeste définissant des fichiers VirtualMachineDisk et VirtualMachine (my-vm.yaml, par exemple) dans l'éditeur de votre choix :

    nano my-vm.yaml
    
  2. Copiez et collez la définition YAML suivante :

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 10Gi
    ---
    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - boot: true
          virtualMachineDiskName: VM_NAME-boot-dv
        - virtualMachineDiskName: DISK_NAME
    

    Cet exemple crée un disque 10Gi (10 gibioctets) vide nommé DISK_NAME. Dans la section spec.disks de la VM, vous devez également associer un disque de démarrage, par exemple à partir d'une image, comme illustré dans la section suivante.

  3. Enregistrez et fermez le fichier manifeste dans l'éditeur.

  4. Créez la VM et le disque en utilisant kubectl :

    kubectl apply -f my-vm.yaml
    

Depuis l'image

Dans ce scénario, vous créez un disque à partir d'une image et vous l'associez à la VM. Ce scénario vous permet de créer un disque de démarrage, par exemple à partir d'une image. Vous pouvez également créer et associer des disques de données à partir d'une image.

  1. Créez un fichier manifeste définissant des fichiers VirtualMachineDisk et VirtualMachine (my-vm.yaml, par exemple) dans l'éditeur de votre choix :

    nano my-vm.yaml
    
  2. Copiez et collez la définition YAML suivante :

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_NAME-boot-dv
    spec:
      size: 20Gi
      source:
        http:
          url: https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img
    ---
    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - boot: true
          virtualMachineDiskName: VM_NAME-boot-dv
    

    Cet exemple crée un disque 20Gi (20 gibioctets) nommé VM_NAME-boot-dv à l'aide d'une image Ubuntu publique. Dans la section spec.disks de la VM, le disque est défini sur boot: true.

  3. Enregistrez et fermez le fichier manifeste dans votre éditeur.

  4. Créez la VM et le disque en utilisant kubectl :

    kubectl apply -f my-vm.yaml
    

Disque existant

Dans ce scénario, vous créez un disque vide et vous l'associez à la VM. Ce scénario vous permet de créer un disque de données afin de stocker les données de votre application.

  1. Créez un fichier manifeste VirtualMachine (my-vm.yaml, par exemple) dans l'éditeur de votre choix :

    nano my-vm.yaml
    
  2. Copiez et collez la définition YAML suivante :

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - boot: true
          virtualMachineDiskName: VM_NAME-boot-dv
        - virtualMachineDiskName: EXISTING_DISK_NAME
    

    Cet exemple associe un disque existant nommé EXISTING_DISK_NAME.

    Dans la section spec.disks de la VM, vous devez également associer un disque de démarrage, par exemple à partir d'une image, comme illustré dans la section précédente.

  3. Enregistrez et fermez le fichier manifeste de la VM dans votre éditeur.

  4. Créez la VM en utilisant kubectl :

    kubectl apply -f my-vm.yaml
    

Créer et associer des disques à une VM existante

Si vous disposez déjà d'une VM, vous pouvez créer et associer des disques pour gérer le cycle de vie de votre application. La VM doit être arrêtée pour pouvoir lui associer un disque.

Disque vide

Dans ce scénario, vous créez un disque vide et vous l'associez à la VM. Ce scénario vous permet de créer un disque de données afin de stocker les données de votre application.

  1. Utilisez kubectl pour arrêter la VM, si nécessaire :

    kubectl virt stop vm VM_NAME
    

    Remplacez VM_NAME par le nom de la VM que vous souhaitez arrêter.

  2. Modifiez la ressource de VM existante, telle que my-vm :

    kubectl edit gvm VM_NAME
    
  3. Mettez à jour le fichier manifeste VirtualMachine pour ajouter une section VirtualMachineDisk en haut, puis associez le disque à la fin de la section spec.disks de la VM :

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 10Gi
    ---
    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - boot: true
          virtualMachineDiskName: VM_NAME-boot-dv
        - virtualMachineDiskName: DISK_NAME
    

    Cet exemple crée un disque 10Gi (10 gibioctets) vide nommé DISK_NAME.

  4. Enregistrez et fermez le fichier manifeste mis à jour de la VM dans votre éditeur.

  5. Utilisez kubectl pour démarrer la VM :

    kubectl virt start vm VM_NAME
    

    Remplacez VM_NAME par le nom de la VM que vous souhaitez démarrer.

Depuis l'image

Dans ce scénario, vous créez un disque à partir d'une image source et vous l'associez à la VM.

  1. Utilisez kubectl pour arrêter la VM, si nécessaire :

    kubectl virt stop vm VM_NAME
    

    Remplacez VM_NAME par le nom de la VM que vous souhaitez arrêter.

  2. Modifiez la ressource de VM existante, telle que my-vm :

    kubectl edit gvm VM_NAME
    
  3. Mettez à jour le fichier manifeste VirtualMachine pour ajouter une section VirtualMachineDisk en haut, puis associez le disque à la fin de la section spec.disks de la VM :

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 10Gi
      source:
        http:
          url: http://example.com/my-disk-img.qcow2
    ---
    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - boot: true
          virtualMachineDiskName: VM_NAME-boot-dv
        - virtualMachineDiskName: DISK_NAME
    

    Cet exemple crée un disque 10Gi (10 gibioctets) nommé DISK_NAME à partir de la source HTTP http://example.com/my-disk-img.qcow2.

  4. Enregistrez et fermez le fichier manifeste mis à jour de la VM dans votre éditeur.

  5. Utilisez kubectl pour démarrer la VM :

    kubectl virt start vm VM_NAME
    

    Remplacez VM_NAME par le nom de la VM que vous souhaitez démarrer.

Créer un disque

Dans ce scénario, vous créez les ressources de disque séparément des ressources de VM. Ce scénario vous permet de créer des disques à l'avance, puis de les associer à des VM au besoin.

Disque vide

Pour créer un disque vide, procédez comme suit :

  1. Créez un fichier manifeste VirtualMachineDisk (my-disk.yaml, par exemple) dans l'éditeur de votre choix :

    nano my-disk.yaml
    
  2. Copiez et collez la définition YAML suivante :

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 10Gi
    

    Cet exemple crée un disque 10Gi (10 gibioctets) vide nommé DISK_NAME.

  3. Enregistrez et fermez le fichier manifeste de disque dans votre éditeur.

  4. Créez le disque en utilisant kubectl :

    kubectl apply -f my-disk.yaml
    

Depuis l'image

Pour créer un disque à partir d'une image, procédez comme suit :

  1. Créez un fichier manifeste VirtualMachineDisk (my-disk.yaml, par exemple) dans l'éditeur de votre choix :

    nano my-disk.yaml
    
  2. Copiez et collez la définition YAML suivante :

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 20Gi
      source:
        http:
          url: https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img
    

    Cet exemple crée un disque 20Gi (20 gibioctets) nommé DISK_NAME à l'aide d'une image Ubuntu publique.

  3. Enregistrez et fermez le fichier manifeste de disque dans votre éditeur.

  4. Créez le disque en utilisant kubectl :

    kubectl apply -f my-disk.yaml
    

Étapes suivantes