Créer et démarrer une instance de VM

Cette page explique comment créer une instance de machine virtuelle (VM) à l'aide d'une image de disque de démarrage ou d'un instantané de disque de démarrage.

Vous pouvez créer une VM avec un ou plusieurs disques. Vous pouvez également ajouter des disques à votre VM après sa création. L'appliance Google Distributed Cloud (GDC) air-gapped démarre automatiquement l'instance de VM après sa création.

Vous pouvez ajouter des scripts de démarrage à une VM, avant ou après sa création. Pour en savoir plus sur les scripts de démarrage, consultez la page Utiliser un script de démarrage avec une instance de VM.

Avant de commencer

Pour utiliser les commandes de l'interface de ligne de commande (CLI) gdcloud, assurez-vous d'avoir téléchargé, installé et configuré la CLI gdcloud. Toutes les commandes pour l'appliance GDC isolée utilisent la CLI gdcloud ou kubectl et nécessitent un environnement de système d'exploitation (OS).

Obtenir le chemin d'accès au fichier kubeconfig

Pour exécuter des commandes sur le serveur de l'API Management, assurez-vous de disposer des ressources suivantes :

  1. Localisez le nom du serveur de l'API Management ou demandez-le à votre administrateur de plate-forme.

  2. Connectez-vous et générez le fichier kubeconfig pour le serveur d'API Management si vous n'en avez pas.

  3. Utilisez le chemin d'accès pour remplacer MANAGEMENT_API_SERVER{"</var>"}} dans ces instructions.

Demander des autorisations et un accès

Pour effectuer les tâches listées sur cette page, vous devez disposer du rôle Administrateur VirtualMachine du projet. Suivez les étapes pour valider ou demandez à votre administrateur IAM de projet de vous attribuer le rôle Administrateur VirtualMachine du projet (project-vm-admin) dans l'espace de noms du projet dans lequel réside la VM.

Pour les opérations sur les VM à l'aide de la console GDC ou de la CLI gdcloud, demandez à votre administrateur IAM de projet de vous attribuer le rôle Administrateur de machines virtuelles du projet et le rôle Lecteur du projet (project-viewer).

Créer une instance de VM à partir d'une image

Cette section explique comment créer une VM à partir d'une image d'OS fournie par GDC ou d'une image d'OS personnalisée.

Afficher la liste des images fournies par GDC

Avant de créer une VM à l'aide d'une image fournie par GDC, consultez la liste des images disponibles.

gdcloud

Répertoriez toutes les images disponibles et leur taille de disque minimale :

gdcloud compute images list

Cette commande inclut les images fournies par GDC et les images personnalisées. Choisissez une image dans l'espace de noms vm-system.

API

  1. Répertoriez toutes les images fournies par GDC :

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system
    
  2. Obtenez le minimumDiskSize pour une image spécifique fournie par le GDC :

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system \
        BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    Remplacez les éléments suivants :

    • MANAGEMENT_API_SERVER avec kubeconfig pour le serveur de l'API Management.
    • BOOT_DISK_IMAGE_NAME par le nom de l'image.

Créer une instance de VM à partir d'une image fournie par GDC

Par défaut, tous les projets GDC peuvent créer des VM à partir d'images d'OS fournies par GDC.

gdcloud

Sélectionnez une image fournie par GDC pour créer l'instance de VM :

gdcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
    --boot-disk-size=BOOT_DISK_SIZE \
    --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE

Remplacez les éléments suivants :

VariableDéfinition
VM_NAME Nom de la nouvelle VM. Le nom ne doit contenir que des caractères alphanumériques et des tirets, et ne pas dépasser 53 caractères.
BOOT_DISK_IMAGE_NAME Nom de l'image à utiliser pour le disque de démarrage de la nouvelle VM.
BOOT_DISK_SIZE Taille du disque de démarrage, par exemple 20G.
Cette valeur doit toujours être supérieure ou égale à la valeur minimumDiskSize de l'image de disque de démarrage.
NO_BOOT_DISK_AUTO_DELETE true ou false, indiquant l'inverse de la suppression automatique du disque de démarrage lorsque l'instance de VM est supprimée.
MACHINE_TYPE Type de machine prédéfini pour la nouvelle VM. Pour sélectionner un type de machine disponible, exécutez la commande suivante :
gdcloud compute machine-types list

API

  1. Sélectionnez une image fournie par l'appliance GDC isolée pour créer l'instance de VM :

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: vm-system
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Remplacez les éléments suivants :

    VariableDéfinition
    MANAGEMENT_API_SERVER Chemin d'accès kubeconfig du serveur de l'API Management.
    PROJECT Projet d'appliance GDC sous air gap permettant de créer la VM.
    VM_NAME Nom de la nouvelle VM. Le nom ne doit contenir que des caractères alphanumériques et des tirets, et ne pas dépasser 53 caractères.
    VM_BOOT_DISK_NAME Nom du nouveau disque de démarrage de la VM.
    BOOT_DISK_IMAGE_NAME Nom de l'image à utiliser pour le disque de démarrage de la nouvelle VM.
    BOOT_DISK_SIZE Taille du disque de démarrage, par exemple 20G.
    Cette valeur doit toujours être supérieure ou égale à la valeur minimumDiskSize de l'image de disque de démarrage.
    BOOT_DISK_AUTO_DELETE true ou false, indiquant si le disque de démarrage est automatiquement supprimé lorsque l'instance de VM est supprimée.
    MACHINE_TYPE Type de machine prédéfini pour la nouvelle VM. Pour sélectionner un type de machine disponible, exécutez la commande suivante :
    gdcloud compute machine-types list
  2. Vérifiez que la VM est créée et attendez qu'elle soit à l'état Running. L'état Running n'indique pas que l'OS est entièrement prêt et accessible.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
    

    Remplacez VM_NAME et PROJECT par le nom et le projet de la VM. VM_NAME ne doit contenir que des caractères alphanumériques et des tirets.

    Pour ajouter un script de démarrage à la création de votre instance de VM, suivez les étapes décrites sur la page Utiliser un script de démarrage avec une instance de VM. Assurez-vous d'arrêter la VM avant d'ajouter le script.

Créer une instance de VM à partir d'une image personnalisée

Une image personnalisée appartient exclusivement à votre projet. Pour créer une VM avec une image personnalisée, vous devez d'abord créer une image personnalisée dans le même projet si vous n'en avez pas déjà une.

gdcloud

  1. Lister toutes les images personnalisées :

    gdcloud compute images list --no-standard-images=true
    
  2. Créez l'instance de VM comme suit :

    gdcloud compute instances create VM_NAME \
        --machine-type=MACHINE_TYPE \
        --image=BOOT_DISK_IMAGE_NAME \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    Remplacez les éléments suivants :

    VariableDéfinition
    VM_NAME Nom de la nouvelle VM. Le nom ne doit contenir que des caractères alphanumériques et des tirets, et ne pas dépasser 53 caractères.
    BOOT_DISK_IMAGE_NAME Nom de l'image à utiliser pour le disque de démarrage de la nouvelle VM.
    BOOT_DISK_SIZE Taille du disque de démarrage, par exemple 20G.
    Cette valeur doit toujours être supérieure ou égale à la valeur minimumDiskSize de l'image de disque de démarrage.
    NO_BOOT_DISK_AUTO_DELETE true ou false, indiquant l'inverse de la suppression automatique du disque de démarrage lorsque l'instance de VM est supprimée.
    MACHINE_TYPE Type de machine prédéfini pour la nouvelle VM. Pour sélectionner un type de machine disponible, exécutez la commande suivante :
    gdcloud compute machine-types list

API

  1. Lister toutes les images personnalisées :

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT
    

    Obtenez le minimumDiskSize d'une image spécifique pour créer une instance de VM :

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT \
        BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    Remplacez les éléments suivants :

    VariableDéfinition
    MANAGEMENT_API_SERVER Chemin d'accès kubeconfig du serveur de l'API Management.
    BOOT_DISK_IMAGE_NAME Nom de l'image choisie à partir de la commande permettant de lister toutes les images personnalisées.
    PROJECT Projet de l'image.
  2. Créez l'instance de VM comme suit :

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Remplacez les variables en utilisant les définitions suivantes :

    VariableDéfinition
    MANAGEMENT_API_SERVER Fichier kubeconfig du serveur de l'API Management.
    PROJECT Projet d'appliance GDC sous air gap permettant de créer la VM.
    VM_NAME Nom de la nouvelle VM. Le nom ne doit contenir que des caractères alphanumériques et des tirets, et ne doit pas dépasser 53 caractères.
    VM_BOOT_DISK_NAME Nom du nouveau disque de démarrage de la VM.
    BOOT_DISK_IMAGE_NAME Nom de l'image à utiliser pour le disque de démarrage de la nouvelle VM.
    BOOT_DISK_SIZE Taille du disque de démarrage, par exemple 20G.
    Cette valeur doit toujours être supérieure ou égale à la valeur minimumDiskSize de l'image de disque de démarrage.
    BOOT_DISK_AUTO_DELETE true ou false, indiquant si le disque de démarrage est automatiquement supprimé lorsque l'instance de VM est supprimée.
    MACHINE_TYPE Type de machine prédéfini pour la nouvelle VM. Pour sélectionner un type de machine disponible, exécutez la commande suivante :
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
  3. Vérifiez que la VM est créée et attendez qu'elle soit à l'état Running. L'état Running n'indique pas que l'OS est entièrement prêt et accessible.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
    

    Remplacez VM_NAME et PROJECT par le nom et le projet de la VM. VM_NAME ne doit contenir que des caractères alphanumériques et des tirets.

Créer une instance de VM avec des disques non amorçables supplémentaires

Vous pouvez créer des disques non amorçables lorsque vous créez une VM. Chaque disque supplémentaire peut spécifier ou non une source d'image. Ce dernier cas permet de créer un disque vide.

gdcloud

  1. Créez un disque à partir d'une image :

    gdcloud compute disks create NON_BOOT_DISK_FROM_IMAGE \
        --size=NON_BOOT_DISK_SIZE \
        --image=NON_BOOT_DISK_IMAGE_NAME \
        --image-project=NON_BOOT_DISK_IMAGE_NAMESPACE
    
  2. Créez un disque à partir d'une image vide :

    gdcloud compute disks create NON_BOOT_BLANK_DISK \
        --size=NON_BOOT_BLANK_DISK_SIZE \
    
  3. Créez une instance avec les disques de l'étape précédente :

    gdcloud compute instances create VM_NAME \
        --machine-type=MACHINE_TYPE \
        --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE \
        --disk=name=NON_BOOT_DISK_FROM_IMAGE \
        --disk=name=NON_BOOT_BLANK_DISK
    

    Remplacez les éléments suivants :

    VariableDéfinition
    VM_NAME Nom de la nouvelle VM. Le nom ne doit contenir que des caractères alphanumériques et des tirets, et ne doit pas dépasser 53 caractères.
    BOOT_DISK_IMAGE_NAME Nom de l'image à utiliser pour le disque de démarrage de la nouvelle VM.
    BOOT_DISK_IMAGE_NAMESPACE Espace de noms de l'image à utiliser pour le nouveau disque de démarrage de la VM. Utilisez vm-system pour une image fournie par GDC ou laissez le champ vide pour une image personnalisée.
    BOOT_DISK_SIZE Taille du disque de démarrage, par exemple 20G.
    Cette valeur doit toujours être supérieure ou égale à la valeur minimumDiskSize de l'image de disque de démarrage.
    NO_BOOT_DISK_AUTO_DELETE true ou false, indiquant l'inverse de la suppression automatique du disque de démarrage lorsque l'instance de VM est supprimée.
    MACHINE_TYPE Type de machine prédéfini pour la nouvelle VM. Pour sélectionner un type de machine disponible, exécutez la commande suivante :
    gdcloud compute machine-types list

    Pour les disques supplémentaires, remplacez les éléments suivants :

    • NON_BOOT_DISK_FROM_IMAGE, NON_BOOT_BLANK_DISK : nom du disque supplémentaire.
    • NON_BOOT_DISK_SIZE, NON_BOOT_BLANK_DISK_SIZE : taille des disques supplémentaires, par exemple 20G.
    • NON_BOOT_DISK_IMAGE_NAME : nom de l'image à utiliser comme disque non amorçable.
    • NON_BOOT_DISK_IMAGE_NAMESPACE : espace de noms de l'image à utiliser comme disque non amorçable. Utilisez vm-system pour une image fournie par GDC ou laissez le champ vide pour une image personnalisée.

API

  1. Créez une VM avec un disque non amorçable :
kubectl --kubeconfig MANAGEMENT_API_SERVER \
    apply -n PROJECT -f - <<EOF
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: NON_BOOT_DISK_FROM_IMAGE
spec:
  source:
    image:
      name: NON_BOOT_DISK_IMAGE_NAME
      namespace: NON_BOOT_DISK_IMAGE_NAMESPACE
  size: NON_BOOT_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: NON_BOOT_BLANK_DISK
spec:
  size: NON_BOOT_BLANK_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: VM_BOOT_DISK_NAME
spec:
  source:
    image:
      name: BOOT_DISK_IMAGE_NAME
      namespace: BOOT_DISK_IMAGE_NAMESPACE
  size: BOOT_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachine
metadata:
  name: VM_NAME
spec:
  compute:
    virtualMachineType: MACHINE_TYPE
  disks:
    - virtualMachineDiskRef:
        name: VM_BOOT_DISK_NAME
      boot: true
      autoDelete: BOOT_DISK_AUTO_DELETE
    - virtualMachineDiskRef:
        name: NON_BOOT_DISK_FROM_IMAGE
    - virtualMachineDiskRef:
        name: NON_BOOT_BLANK_DISK
EOF

Remplacez les éléments suivants :

VariableDéfinition
MANAGEMENT_API_SERVER Chemin d'accès kubeconfig du serveur de l'API Management.
PROJECT Projet GDC dans lequel vous souhaitez créer la VM.
VM_NAME Nom de la nouvelle VM. Le nom ne doit contenir que des caractères alphanumériques et des tirets, et ne pas dépasser 53 caractères.
VM_BOOT_DISK_NAME Nom du nouveau disque de démarrage de la VM.
BOOT_DISK_IMAGE_NAME Nom de l'image à utiliser pour le disque de démarrage de la nouvelle VM.
BOOT_DISK_IMAGE_NAMESPACE Espace de noms de l'image à utiliser pour le nouveau disque de démarrage de la VM. Utilisez l'espace de noms vm-system pour une image fournie par GDC ou laissez le champ vide pour une image personnalisée.
BOOT_DISK_SIZE Taille du disque de démarrage, par exemple 20G.
Cette valeur doit toujours être supérieure ou égale à la valeur minimumDiskSize de l'image de disque de démarrage.
BOOT_DISK_AUTO_DELETE true ou false, indiquant si le disque de démarrage est automatiquement supprimé lorsque l'instance de VM est supprimée.
MACHINE_TYPE Type de machine prédéfini pour la nouvelle VM. Pour sélectionner un type de machine disponible, exécutez la commande suivante :
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system

Pour les disques supplémentaires, remplacez les éléments suivants :

  • NON_BOOT_DISK_FROM_IMAGE, NON_BOOT_BLANK_DISK : nom du disque supplémentaire.
  • NON_BOOT_DISK_SIZE, NON_BOOT_BLANK_DISK_SIZE : taille des disques supplémentaires, par exemple 20G.
  • NON_BOOT_DISK_IMAGE_NAME : nom de l'image que vous souhaitez utiliser comme disque non amorçable.
  • NON_BOOT_DISK_IMAGE_NAMESPACE : espace de noms de l'image que vous souhaitez utiliser comme disque non amorçable. Utilisez l'espace de noms vm-system pour une image fournie par GDC ou laissez le champ vide pour une image personnalisée.

Formatez et installez les disques avant de les utiliser.

Créer une VM à partir d'un instantané ou d'une sauvegarde

Vous pouvez créer une VM à partir d'un instantané comme suit :

  • Restaurer un disque de démarrage de VM : si vous avez sauvegardé le disque de démarrage d'une VM avec un instantané, utilisez cet instantané pour créer une VM. Consultez Restaurer un instantané.
  • Restaurer un disque non amorçable : si vous avez sauvegardé un disque non amorçable avec un instantané, vous pouvez également restaurer l'instantané sur un nouveau disque non amorçable lorsque vous créez une VM, en suivant les mêmes instructions.

Pour créer plusieurs VM avec le même disque de démarrage, procédez comme suit :

  1. Créez une image personnalisée.
  2. Créez des VM à partir de cette image sans utiliser d'instantané.

Créer une VM sans utiliser de type de machine

L'appliance GDC isolée propose des types de machines prédéfinis que vous pouvez utiliser lorsque vous créez une instance de VM. Ces types ont des quantités prédéfinies de processeurs virtuels et de mémoire.

Si les VM prédéfinies ne répondent pas à vos besoins, créez une instance de VM avec des paramètres matériels virtualisés personnalisés.

Les VM personnalisées sont idéales dans les scénarios suivants :

  • Charges de travail qui ne conviennent pas aux types de VM prédéfinis.
  • Charges de travail qui nécessitent davantage de puissance de traitement ou de mémoire, sans pour autant nécessiter toutes les mises à niveau fournies par le type de machine de niveau supérieur.

gdcloud

  1. Créez une VM avec un type de machine que vous définissez :

    gdcloud compute instances create VM_NAME \
        --custom-cpu=NUM_VCPU \
        --custom-memory=MEMORY
        --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    Remplacez les éléments suivants :

    VariableDéfinition
    VM_NAME Nom de la nouvelle VM. Le nom ne doit contenir que des caractères alphanumériques et des tirets, et ne doit pas dépasser 53 caractères.
    BOOT_DISK_IMAGE_NAME Nom de l'image à utiliser pour le disque de démarrage de la nouvelle VM.
    BOOT_DISK_SIZE Taille du disque de démarrage, par exemple 20G.
    Cette valeur doit toujours être supérieure ou égale à la valeur minimumDiskSize de l'image de disque de démarrage.
    NO_BOOT_DISK_AUTO_DELETE true ou false, indiquant l'inverse de la suppression automatique du disque de démarrage lorsque l'instance de VM est supprimée.
    NUM_VCPU Nombre de vCPU. Le nombre maximal de processeurs virtuels acceptés est de 192.
    MEMORY Taille de la mémoire, par exemple 8G. La taille maximale de la mémoire est de 1 téraoctet (To).

API

  1. Créez une VM avec un type de machine que vous définissez :

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: vm-system
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        vcpus: NUM_VCPU
        memory: MEMORY
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    Remplacez les éléments suivants :

    VariableDéfinition
    MANAGEMENT_API_SERVER Chemin d'accès kubeconfig du serveur de l'API Management.
    PROJECT Projet d'appliance GDC sous air gap permettant de créer la VM.
    VM_NAME Nom de la nouvelle VM. Le nom ne doit contenir que des caractères alphanumériques et des tirets, et ne pas dépasser 53 caractères.
    VM_BOOT_DISK_NAME Nom du nouveau disque de démarrage de la VM.
    BOOT_DISK_IMAGE_NAME Nom de l'image à utiliser pour le disque de démarrage de la nouvelle VM.
    BOOT_DISK_SIZE Taille du disque de démarrage, par exemple 20G.
    Cette valeur doit toujours être supérieure ou égale à la valeur minimumDiskSize de l'image de disque de démarrage.
    BOOT_DISK_AUTO_DELETE true ou false, indiquant si le disque de démarrage est automatiquement supprimé lorsque l'instance de VM est supprimée.
    NUM_VCPU Nombre de vCPU. Le nombre maximal de processeurs virtuels acceptés est de 192.
    MEMORY Taille de la mémoire, par exemple 8G. La taille maximale de la mémoire est de 1 To.