Lorsque vous créez des VM qui utilisent l'environnement d'exécution de VM sur Google Distributed Cloud, vous pouvez configurer les ressources de calcul de deux manières :
- Spécifier manuellement le processeur et la mémoire : définissez les ressources de calcul directement dans le fichier manifeste
VirtualMachine. Cette approche est utile pour les VM ponctuelles ou les charges de travail personnalisées qui nécessitent des allocations de ressources uniques. - Créer et utiliser des types de VM : définissez des ressources personnalisées
VirtualMachineTyperéutilisables qui standardisent les allocations de processeur et de mémoire. Cette approche est utile pour gérer des parcs de VM, assurer la cohérence du calcul dans votre cluster et simplifier le provisionnement de VM pour les développeurs.
Avant de commencer
Pour spécifier manuellement les ressources de processeur et de mémoire, et pour créer et utiliser des types de VM, vous devez avoir accès aux ressources suivantes :
- Un cluster connecté Distributed Cloud, version 1.9.0 ou ultérieure.
- L'outil de ligne de commande Kubernetes,
kubectl, installé et configuré pour accéder à votre cluster. Pour en savoir plus, consultez installerkubectl. - Facultatif : L'outil client
virtctl, installé en tant que plug-in dekubectl. Si nécessaire, consultez Installer l'outil de gestionvirtctl.
Créer une VM et spécifier le processeur et la mémoire
Lorsque vous créez une VM, vous pouvez spécifier manuellement les exigences en termes de processeur et de mémoire. Utilisez cette fonctionnalité pour créer des VM disposant des ressources de calcul appropriées pour répondre aux besoins de votre application.
Pour créer une VM et spécifier le processeur et la mémoire, utilisez un fichier manifeste VirtualMachine.
Dans l'éditeur de votre choix, créez un fichier manifeste
VirtualMachine, tel quemy-custom-vm.yaml:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME namespace: NAMESPACE spec: compute: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE interfaces: - name: eth0 networkName: L2_NETWORK_NAME default: true disks: - virtualMachineDiskName: VM_BOOT_NAME-boot-dv boot: true
Dans ce fichier YAML, définissez les paramètres suivants :
VM_NAME: nom de votre VM.NAMESPACE: espace de noms cible de votre VM.L2_NETWORK_NAME: nom du réseau de couche 2 auquel connecter la VM.VCPU_NUMBER: nombre de processeurs virtuels à attribuer à la VM. Vous pouvez attribuer entre 1 et 96 processeurs virtuels à une VM.MEMORY_SIZE: quantité de mémoire à attribuer à la VM. Vous pouvez attribuer entre 1 Mio et 1 Tio de mémoire à une VM. Pour en savoir plus, consultez la section Unités de ressource de mémoire dans la documentation de Kubernetes.VM_BOOT_NAME: nom du disque de démarrage de votre VM. Le disque de démarrage doit déjà exister. Pour en savoir plus, consultez Créer un disque de machine virtuelle à partir d'une image de machine virtuelle.
La VM connecte l'interface
eth0au réseau L2 spécifié.Pour créer la VM, appliquez le fichier manifeste à votre cluster connecté Distributed Cloud à l'aide de la commande
kubectl apply:kubectl apply -f my-custom-vm.yamlPour vérifier que la VM a été créée, utilisez la commande
kubectl get:kubectl get vm VM_NAME -n NAMESPACELe résultat attendu affiche l'état de la VM. Vous pouvez également utiliser la commande
kubectl describepour afficher la configuration détaillée, y compris le processeur et la mémoire attribués.
Créer et utiliser des types de VM
Lorsque vous activez l'environnement d'exécution de VM sur GDC, la définition de ressource personnalisée VirtualMachineType devient disponible dans votre cluster. Vous pouvez utiliser ce type de ressource pour créer des modèles réutilisables qui définissent des allocations spécifiques de processeur et de mémoire.
En créant des types de VM personnalisés pour vos différentes charges de travail, vous pouvez provisionner plusieurs VM avec des configurations de ressources de calcul cohérentes.
Si l'environnement d'exécution des VM sur GDC est activé dans Distributed Cloud connecté, un type de VM prédéfini peut être disponible. Vous ne pouvez pas mettre à jour ce type de VM prédéfini. La définition suivante indique le type de VM example-machinetype par défaut :
apiVersion: vm.cluster.gke.io/v1
kind: VirtualMachineType
metadata:
name: "example-machinetype"
labels:
vm.cluster.gke.io/predefined-machinetype: "true"
spec:
cpu:
vcpus: 2
memory:
capacity: 4G
Créer un type de VM
Vous pouvez créer vos propres types de VM en fonction des besoins de calcul de vos charges de travail.
Dans l'éditeur de votre choix, créez un fichier manifeste
VirtualMachineType, tel quemy-vm-type.yaml:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: VM_TYPE_NAME spec: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE
Dans ce type de VM, définissez les paramètres suivants :
VM_TYPE_NAME: nom de votre type de VM.VCPU_NUMBER: nombre de processeurs virtuels à attribuer à la VM. Vous pouvez attribuer entre 1 et 96 processeurs virtuels à une VM.MEMORY_SIZE: quantité de mémoire à attribuer à la VM. Vous pouvez attribuer entre 1 Mio et 1 Tio de mémoire à une VM. Pour en savoir plus, consultez la section Unités de ressource de mémoire dans la documentation de Kubernetes.
Pour créer le type de VM, appliquez le fichier manifeste à votre cluster connecté Distributed Cloud à l'aide de la commande
kubectl apply:kubectl apply -f my-vm-type.yamlPour vérifier que le type de VM a été créé, exécutez la commande
kubectl get:kubectl get virtualmachinetype VM_TYPE_NAME
Créer une VM en utilisant un type de VM
Pour appliquer les paramètres de processeur et de mémoire définis dans un type de VM à votre VM, spécifiez le nom du type de VM dans la section compute du fichier manifeste VirtualMachine.
Dans l'éditeur de votre choix, créez un fichier manifeste
VirtualMachine, tel quemy-custom-vm.yaml. Dans ce fichier YAML, spécifiez le nom du type de VM personnalisé que vous avez créé dans la section précédente (my-vm-type, par exemple) comme valeur du champvirtualMachineTypeName.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME namespace: NAMESPACE spec: compute: virtualMachineTypeName: VM_TYPE_NAME interfaces: - name: eth0 networkName: L2_NETWORK_NAME default: true disks: - virtualMachineDiskName: VM_BOOT_NAME-boot-dv boot: true
Définissez les paramètres suivants :
VM_NAME: nom de votre VM.NAMESPACE: espace de noms cible de votre VM.L2_NETWORK_NAME: nom du réseau de couche 2 auquel connecter la VM.VM_TYPE_NAME: nom du type de VM personnalisé que vous avez créé dans la section précédente, par exemplemy-vm-type.VM_BOOT_NAME: nom du disque de démarrage de votre VM. Le disque de démarrage doit déjà exister. Pour en savoir plus, consultez Créer un disque de machine virtuelle à partir d'une image de machine virtuelle.
La VM connecte l'interface
eth0au réseau L2 spécifié.Pour créer la VM, appliquez le fichier manifeste à votre cluster connecté Distributed Cloud à l'aide de la commande
kubectl apply:kubectl apply -f my-custom-vm.yamlPour vérifier que la VM utilise le type de VM, exécutez la commande
kubectl getavec l'option-o jsonpath:kubectl get vm VM_NAME -n NAMESPACE -o jsonpath='{.spec.compute.virtualMachineTypeName}'Le résultat attendu affiche le nom de votre type de VM.