Vous pouvez arrêter, démarrer et redémarrer des VM pour prendre en charge le cycle de vie de vos applications. Par exemple, vous pouvez modifier le nombre de processeurs virtuels (vCPU) attribués ou la quantité de mémoire allouée à une VM. Vous devez arrêter la VM avant de modifier la configuration. Une fois que vous avez terminé, vous devez arrêter l'état d'alimentation pour appliquer les modifications. Cette page explique comment arrêter, démarrer et redémarrer vos VM lors de ces processus.
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 Distributed Cloud 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 :
Connectez-vous et générez le fichier kubeconfig pour le serveur d'API Management si vous n'en avez pas.
Utilisez le chemin d'accès au fichier kubeconfig du serveur de l'API Management pour remplacer
MANAGEMENT_API_SERVER
dans ces instructions.
Si vous souhaitez réduire au minimum le temps de démarrage de votre VM, suivez les instructions de la section Réduire le temps de démarrage de la VM avant de démarrer votre VM.
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
).
Arrêter une VM
Lorsque vous arrêtez une machine virtuelle (VM), l'hyperviseur libère toutes les ressources associées à l'instance. La VM est arrêtée.
Arrêtez une VM en cours d'exécution à l'aide de la console GDC ou de kubectl
.
Console
Dans le menu de navigation, cliquez sur Machines virtuelles > Instances.
Dans la liste des VM, cochez la case correspondant à la VM en cours d'exécution que vous souhaitez arrêter.
Cliquez sur Arrêter.
Dans la boîte de dialogue de confirmation, cliquez sur Arrêter.
gdcloud
Pour arrêter une VM, procédez comme suit :
gdcloud compute instances stop VM_NAME --project PROJECT
- Remplacez
VM_NAME
par le nom de la VM. - Remplacez
PROJECT
par le nom du projet GDC dans lequel se trouve la VM.
kubectl
Exécutez la commande suivante :
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ edit virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
Recherchez le champ
runningState
dans lespec
de la VM et remplacez sa valeur parStopped
. SirunningState
ne figure pas dansspec
, ajoutezrunningState
àspec
et définissez la valeur surStopped
.spec: runningState: Stopped
Vérifiez l'état de la VM :
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
Utilisez ces définitions pour les variables précédentes.
Variable Définition MANAGEMENT_API_SERVER_KUBECONFIG
Fichier kubeconfig du serveur de l'API Management. VM_NAME
Nom de la VM. PROJECT
Nom du projet de la VM.
Démarrer une VM
Démarrez une VM à partir d'un état arrêté à l'aide de la console ou de kubectl
.
Console
Dans le menu de navigation, cliquez sur Machines virtuelles > Instances.
Dans la liste des VM, cochez la case correspondant à la VM arrêtée que vous souhaitez démarrer.
Cliquez sur Démarrer.
Dans la boîte de dialogue de confirmation, cliquez sur Démarrer.
gdcloud
Pour démarrer une VM :
gdcloud compute instances start VM_NAME --project PROJECT
- Remplacez
VM_NAME
par le nom de la VM. - Remplacez
PROJECT
par le nom du projet GDC dans lequel se trouve la VM.
kubectl
Exécutez la commande suivante :
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ edit virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
Recherchez le champ
runningState
dans lespec
de la VM et remplacez sa valeur parRunning
.spec: runningState: Running
Vérifiez l'état de la VM :
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get virtualmachines.virtualmachine.gdc.goog VM_NAME \ -n PROJECT
Utilisez ces définitions pour les variables dans l'exemple de code.
Variable Définition MANAGEMENT_API_SERVER_KUBECONFIG
Fichier kubeconfig du serveur de l'API Management. MANAGEMENT_API_SERVER_NAME
Nom du serveur de l'API Management. NAMESPACE
Espace de noms de la VM. VM_NAME
Nom de la VM. PROJECT
Nom du projet de la VM.
Redémarrer une VM
Lorsque vous redémarrez une VM, la machine est réinitialisée à son état initial et le contenu de la mémoire est effacé.
Redémarrez une VM en cours d'exécution à l'aide de la console ou de kubectl
.
Console
Dans le menu de navigation, cliquez sur Machines virtuelles > Instances.
Dans la liste des VM, cochez la case correspondant à la VM en cours d'exécution que vous souhaitez redémarrer.
Cliquez sur Réinitialiser.
Dans la boîte de dialogue de confirmation, cliquez sur Réinitialiser.
gdcloud
Pour réinitialiser une VM :
gdcloud compute instances reset VM_NAME --project PROJECT
- Remplacez
VM_NAME
par le nom de la VM. - Remplacez
PROJECT
par le nom du projet GDC dans lequel se trouve la VM.
kubectl
Obtenez les données du certificat et de la clé client, ainsi que le serveur de l'API Management. Utilisez ces valeurs dans les étapes suivantes :
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG config view --raw -o \ jsonpath='{.users[?(@.name =="MANAGEMENT_API_SERVER_NAME-admin")].user.client-certificate-data}' | \ base64 -d > cert kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG config view --raw -o \ jsonpath='{.users[?(@.name == "MANAGEMENT_API_SERVER_NAME-admin")].user.client-key-data}' | \ base64 -d > key export APISERVER=`kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ config view --raw -o \ jsonpath='{.clusters[?(@.name == "MANAGEMENT_API_SERVER_NAME")].cluster.server}'`
Envoyez une requête d'API pour redémarrer la VM à l'aide de la commande
wget
et spécifiez le certificat et la clé de l'étape précédente :wget --method=PUT -O- --no-check-certificate --certificate cert --private-key key --content-on-error=on $APISERVER/apis/virtualmachineoperations.gdc.goog/v1/namespaces/PROJECT/virtualmachines/VM_NAME/restart
Vérifiez l'état de la VM :
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT
Utilisez ces définitions pour les variables dans l'exemple de code.
Variable Définition MANAGEMENT_API_SERVER_KUBECONFIG
Fichier kubeconfig du serveur de l'API Management. MANAGEMENT_API_SERVER_NAME
Nom du serveur de l'API Management. NAMESPACE
Espace de noms de la VM. VM_NAME
Nom de la VM. PROJECT
Nom du projet de la VM.