Ce document décrit les étapes à suivre pour importer des images disque de machines virtuelles (VM) dans Google Distributed Cloud (GDC) air-gapped.
Importez vos disques virtuels existants, souvent appelés disques de référence ou images de référence, dans GDC pour gagner du temps et utilisez l'image obtenue pour créer des machines virtuelles. L'outil d'importation est compatible avec les formats d'image RAW et QCOW.
Ce document est destiné aux développeurs des groupes d'administrateurs de plate-forme ou d'opérateurs d'applications qui créent des images de VM. Pour en savoir plus, consultez la documentation sur les audiences pour GDC sous air gap.
Avant de commencer
Avant de continuer, assurez-vous de disposer des éléments suivants :
Préparer l'environnement
- La CLI gdcloud téléchargée, installée et configurée. Toutes les commandes CLI pour GDC utilisent la CLI gdcloud ou la CLI kubectl, et nécessitent un environnement de système d'exploitation (OS).
Demander des rôles IAM
Pour obtenir les autorisations nécessaires pour importer des disques virtuels, demandez à votre administrateur de projet IAM de vous accorder les rôles suivants sur votre projet :
Administrateur de projet de machine virtuelle (
project-vm-admin) : créez, modifiez, listez et supprimez des VM dans l'espace de noms du projet.project-viewer(Lecteur de projet) : permet d'afficher toutes les ressources de l'espace de noms du projet.Administrateur de projet d'images de machines virtuelles (
project-vm-image-admin) : crée, liste et supprime des images de VM dans l'espace de noms du projet.
Tous les rôles de VM doivent être liés à l'espace de noms du projet dans lequel réside la VM. Suivez la procédure pour valider votre accès.
Importer des disques virtuels
Vous pouvez importer des fichiers de disque virtuel directement depuis votre poste de travail. L'outil d'importation importe automatiquement le fichier dans un bucket de stockage d'objets de votre projet.
Pour importer vos disques virtuels, utilisez la CLI gdcloud ou l'API du gestionnaire de machine virtuelle.
gdcloud
La commande import vérifie que l'image fournie par GDC dispose des packages requis pour configurer les identifiants permettant de se connecter à l'instance à l'aide de SSH (Secure Shell) et du protocole RDP (Remote Desktop Protocol). Cela inclut les packages pour l'environnement invité.
La commande installe également des packages pour le protocole NTP (Network Time Protocol) et cloud-init pour que l'instance s'exécute correctement dans GDC.
- Pour créer une image de démarrage, utilisez la commande
gdcloud compute images import:
gdcloud compute images import IMAGE_NAME \
--source-file=SOURCE_FILE \
--os=IMAGE_OS \
--timeout=TIMEOUT
Remplacez les variables suivantes :
- IMAGE_NAME : nom de votre image de destination. Le nom ne doit pas dépasser 35 caractères.
- SOURCE_FILE : votre fichier de disque virtuel. Ce fichier est un fichier local sur votre poste de travail. Vous pouvez spécifier un chemin d'accès absolu ou relatif.
- IMAGE_OS : OS du disque à importer.
- TIMEOUT : durée maximale d'une importation avant qu'elle n'échoue avec l'erreur "TIMEOUT". Par exemple, si vous spécifiez
2h, le processus échoue au bout de deux heures. Le délai avant expiration par défaut est1h.
L'opération d'importation peut prendre un certain temps en fonction de la taille de votre disque virtuel et de la vitesse de votre connexion réseau. L'opération d'importation peut durer plusieurs dizaines de minutes en fonction de la taille du disque.
API
Pour importer un disque virtuel via l'API, procédez comme suit :
Créez une ressource personnalisée
VirtualMachineImageImportsur le serveur de l'API de gestion pour lancer le processus d'importation d'image :kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT_ID \ apply -f - <<EOF apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachineImageImport metadata: name: IMAGE_NAME namespace: PROJECT_ID spec: source: objectStorage: bucketRef: name: vm-images-bucket objectName: SOURCE_FILE imageMetadata: name: IMAGE_NAME operatingSystem: IMAGE_OS minimumDiskSize: DISK_SIZE EOFRemplacez les variables suivantes :
- MANAGEMENT_API_SERVER : fichier kubeconfig du serveur d'API de gestion.
- IMAGE_NAME : nom de l'image à importer. Le nom ne doit pas dépasser 35 caractères.
- PROJECT_ID : ID du projet dans lequel vous souhaitez importer l'image.
- SOURCE_FILE : nom du fichier source contenant l'importation du disque virtuel dans le store d'objets. Cette valeur correspond à la section du chemin de stockage de l'objet après
vm-images-bucket/. - IMAGE_OS : OS du disque à importer.
- DISK_SIZE : taille minimale d'un disque que vous créez à partir de cette image. Utilisez une marge d'au moins 20% en plus de la taille du système de fichiers de l'image d'origine. Par exemple, utilisez au moins
12Gpour un disque virtuel dont la taille du système de fichiers d'origine est de 10 Go.
Surveillez la progression de l'importation en interrogeant l'état de la ressource personnalisée
VirtualMachineImageImport:kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT_ID \ get virtualmachineimageimport.virtualmachine.gdc.goog IMAGE_NAME \ -o jsonpath='{.status}'
Effectuer un nettoyage des ressources
Le processus d'importation implique l'importation de votre fichier de disque virtuel dans un store d'objets.
Si vous utilisez la CLI gdcloud, elle supprime l'objet une fois la commande terminée, même si l'importation échoue. Si vous interrompez la commande ou si vous importez l'image avec l'API, le fichier de disque virtuel peut rester dans le bucket de stockage d'objets nommé vm-images-bucket jusqu'à ce que vous le supprimiez manuellement.
Étapes suivantes
- Consultez les images compatibles avec GDC.
- Créez et démarrez une instance de VM qui utilise votre image.
- Créez un disque de démarrage pour votre VM.