Questo documento è rivolto ai proprietari di applicazioni che utilizzano il runtime VM su GDC per eseguire macchine virtuali (VM) in Google Distributed Cloud. Questo documento mostra come modificare le VM in esecuzione nei cluster GKE on Bare Metal. Ad esempio, puoi modificare l'allocazione delle risorse, come CPU e memoria, o cambiare la rete a cui si connette una VM.
Puoi modificare qualsiasi campo nella sezione spec
di una risorsa VirtualMachine
.
Puoi anche modificare le etichette di una VM. Gli altri campi, come il nome della VM (metadata.name
), non possono essere modificati. Per impostazione predefinita, la VM deve essere in stato Stopped
prima di modificare la risorsa. Tuttavia, a partire da Google Distributed Cloud versione 1.13.0, puoi configurare la tua risorsa VirtualMachine
in modo che si riavvii automaticamente ogni volta che modifichi la configurazione.
Se le modifiche apportate alla risorsa VirtualMachine
contengono errori quando le salvi, le modifiche vengono rifiutate e viene visualizzata una notifica. Correggi gli errori e prova a salvare di nuovo la risorsa VirtualMachine
. Se la VM non si avvia dopo aver apportato le modifiche, utilizza il comando kubectl describe gvm VM_NAME
per visualizzare le informazioni sulla risoluzione dei problemi e correggere gli errori.
Prima di iniziare
Per completare questo documento, devi accedere alle seguenti risorse:
- Una VM eseguita in uno dei tuoi cluster. Se necessario, crea una VM in Google Distributed Cloud.
- Lo strumento client
virtctl
installato come plug-in perkubectl
. Se necessario, installa lo strumento client virtctl.
Modifica risorse di computing
Se le esigenze del tuo carico di lavoro di computing cambiano, puoi aggiornare il numero di CPU virtuali e la quantità di memoria virtuale assegnata alle VM. Per modificare i carichi di lavoro di computing, completa questi passaggi:
Arresta la VM che vuoi modificare:
kubectl virt stop VM_NAME
Sostituisci
VM_NAME
con il nome della VM che vuoi arrestare.Utilizza
kubectl
per modificare la VM:kubectl edit gvm VM_NAME
Sostituisci
VM_NAME
con il nome della VM che vuoi modificare.Nell'editor, aggiorna i valori delle risorse di calcolo che vuoi modificare.
Ad esempio, il seguente manifest
VirtualMachine
di esempio mostra che alla risorsa VM sono assegnate2
vCPU:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: vm1 spec: ... compute: cpu: vcpus: 2 ...
Se vuoi aggiornare il numero di vCPU assegnate, modifica il valore nell'editor, come mostrato nell'esempio seguente:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: vm1 spec: ... compute: cpu: vcpus: 4 ...
Salva e chiudi il manifest della VM.
Avvia la VM che hai modificato:
kubectl virt start VM_NAME
Sostituisci
VM_NAME
con il nome della VM che hai modificato.Controlla
STATUS
della VM:kubectl get gvm VM_NAME
Assicurati che la VM sia in stato
Running
. Se la tua VM richiede più risorse di calcolo di quelle fornite dall'host, la VM non può avviarsi. Se la VM non è in statoRunning
, controlla il manifest della risorsaVirtualMachine
e la disponibilità delle risorse di calcolo nell'host.L'output di esempio seguente mostra la VM in stato
Running
:NAME STATUS AGE IP vm1 Running 1m 192.168.2.72
Visualizza le informazioni dettagliate su una VM che utilizza
kubectl describe gvm
:kubectl describe gvm VM_NAME
Sostituisci
VM_NAME
con il nome della VM che hai modificato.L'output di esempio seguente mostra le informazioni ridotte per una VM, con una modifica al numero di vCPU applicate correttamente:
Name: vm1 Namespace: default Labels: <none> Annotations: <none> API Version: vm.cluster.gke.io/v1 Kind: VirtualMachine ... Spec: Compute: Cpu: Vcpus: 4 ...
Per ulteriori informazioni, consulta la pagina su come creare VM con configurazioni di calcolo di vCPU e memoria specifiche.
Modifica risorse disco
Se i requisiti di archiviazione cambiano, puoi aggiungere o rimuovere i dischi virtuali per una VM. Per modificare i dischi collegati alla VM, completa i seguenti passaggi:
Arresta la VM che vuoi modificare:
kubectl virt stop VM_NAME
Sostituisci
VM_NAME
con il nome della VM che vuoi arrestare.Utilizza
kubectl
per modificare la VM:kubectl edit gvm VM_NAME
Sostituisci
VM_NAME
con il nome della VM che vuoi modificare.Nell'editor, aggiorna la sezione
spec.disks
per collegare o scollegare i dischi.Ad esempio, il seguente manifest
VirtualMachine
di esempio mostra che alla VM è collegato solo un disco di avvio:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: vm1 spec: ... disks: - boot: true virtualMachineDiskName: vm1-boot-dv ...
Se vuoi aggiungere un disco vuoto esistente, aggiorna la configurazione del disco nell'editor, come mostrato nell'esempio seguente:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: vm1 spec: ... disks: - boot: true virtualMachineDiskName: vm1-boot-dv - virtualMachineDiskName: DISK_NAME ...
Sostituisci
DISK_NAME
con il nome del disco da collegare.Salva e chiudi il manifest della VM.
Avvia la VM che hai modificato:
kubectl virt start VM_NAME
Sostituisci
VM_NAME
con il nome della VM che hai modificato.Controlla
STATUS
della VM:kubectl get gvm VM_NAME
Assicurati che la VM sia in stato
Running
. Se la tua VM richiede unStorageClass
o un'assegnazione del disco che l'host non può fornire, la VM non può essere avviata. Se la VM non è in statoRunning
, controlla i manifest delle risorseVirtualMachine
eVirtualMachineDisk
e il supporto dello spazio di archiviazione dell'host.Visualizza le informazioni dettagliate su una VM che utilizza
kubectl describe gvm
:kubectl describe gvm VM_NAME
Sostituisci
VM_NAME
con il nome della VM che hai modificato.L'output di esempio seguente mostra le informazioni ridotte per una VM, con una modifica ai dischi collegati applicata correttamente:
Name: vm1 Namespace: default Labels: <none> Annotations: <none> API Version: vm.cluster.gke.io/v1 Kind: VirtualMachine ... Spec: Disks: Name: vm1-boot-dv Name: data-disk-01 ...
Per ulteriori informazioni, consulta la sezione su come creare e gestire i dischi.
Modifica risorse di rete
Man mano che la tua infrastruttura cambia, potresti scegliere di cambiare la configurazione di rete per una VM. Ad esempio, potresti voler connettere la VM a un'altra rete virtuale o assegnare manualmente un indirizzo IP. Per modificare la configurazione di rete per una VM, completa questi passaggi:
Arresta la VM che vuoi modificare:
kubectl virt stop VM_NAME
Sostituisci
VM_NAME
con il nome della VM che vuoi arrestare.Utilizza
kubectl
per modificare la VM:kubectl edit gvm VM_NAME
Sostituisci
VM_NAME
con il nome della VM che vuoi modificare.Nell'editor, aggiorna le impostazioni di configurazione della rete che vuoi modificare.
Ad esempio, il seguente manifest
VirtualMachine
di esempio mostra che la VM si connette a una rete denominatabackend-vlan100
e utilizza DHCP perché non è stato definito alcun indirizzo IP:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: vm1 spec: ... interfaces: - name: eth0 networkName: backend-vlan100 default: true ...
Se vuoi cambiare la rete a cui si collega la VM o assegnare un indirizzo IP manuale, aggiorna la configurazione di rete nell'editor, come mostrato nell'esempio seguente:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: vm1 spec: ... interfaces: - name: eth0 networkName: NETWORK_NAME ipAddresses: - IP_ADDRESS default: true ...
Sostituisci
NETWORK_NAME
con il nome della rete a cui connetterti o aggiungi la sezioneipAddresses
e specifica ilIP_ADDRESS
da utilizzare per la VM.Salva e chiudi il manifest della VM.
Avvia la VM che hai modificato:
kubectl virt start VM_NAME
Sostituisci
VM_NAME
con il nome della VM che hai modificato.Controlla
STATUS
della VM:kubectl get gvm VM_NAME
Assicurati che la VM sia in stato
Running
. Se la tua VM richiede una connessione di rete che l'host non può fornire, la VM non può essere avviata. Se la VM non è in statoRunning
, controlla il manifest della risorsaVirtualMachine
e il supporto della rete host.Visualizza le informazioni dettagliate su una VM che utilizza
kubectl describe gvm
:kubectl describe gvm VM_NAME
Sostituisci
VM_NAME
con il nome della VM che hai modificato.L'output di esempio seguente mostra le informazioni ridotte per una VM, con una modifica alla configurazione di rete e dell'indirizzo IP applicata correttamente:
Name: vm1 Namespace: default Labels: <none> Annotations: <none> API Version: vm.cluster.gke.io/v1 Kind: VirtualMachine ... Spec: Compute: Interfaces: Name: eth0 Network Name: backend-vlan200 ... Status: ... Interfaces: Dns Config: Nameservers: 8.8.8.8 gateway4: 10.200.0.9 Ip Addresses: 10.200.0.22/24 Mac Address: 22:b4:e3:d2:ef:fb Name: eth0 Resource Name: vm1-eth0-f2468 ...
Per ulteriori informazioni, scopri come creare e gestire le reti virtuali.
Configura la tua VM per i riavvii automatici
Molte modifiche alla configurazione della VM, ad esempio le modifiche alle impostazioni compute
, richiedono l'arresto e il riavvio della VM affinché le modifiche vengano sincronizzate con l'istanza VM corrispondente (VirtualMachineInstance
). Le VM in esecuzione in Google Distributed Cloud versione 1.13.0 o successive possono essere configurate in modo da riavviarsi automaticamente ogni volta che apporti modifiche alla configurazione. Quando configuri una VM per l'utilizzo di questa funzionalità, non è necessario arrestare e riavviare una VM quando modifichi la relativa risorsa personalizzata. Il runtime VM su GDC monitora la VM e, se rileva una modifica alla configurazione, riavvia automaticamente la VM per sincronizzare le modifiche.
Se gestisci Config Sync per gestire i tuoi file
di configurazione YAML, questa funzionalità è particolarmente utile. Senza questa funzionalità, devi arrestare la VM manualmente prima di apportare modifiche alla risorsa personalizzata VirtualMachine
e avviare la VM manualmente dopo aver completato le modifiche.
Per attivare i riavvii automatici:
Utilizza
kubectl
per modificare la VM:kubectl edit gvm VM_NAME
Nell'editor, aggiungi il campo
autoRestartOnConfigurationChange
e impostalo sutrue
.Puoi apportare ulteriori modifiche alla VM, ad esempio aggiornare il valore
vcpus
. Se modifichi le impostazioni dicompute
, il runtime VM su GDC riavvia la VM automaticamente quando salvi le modifiche.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: ... name: vm-sample-01 namespace: default resourceVersion: "16711824" uid: ed623879-0cfa-52de-ad2c-b63308e6116c spec: autoRestartOnConfigurationChange: true compute: cpu: vcpus: 2 ...
Salva e chiudi il manifest della VM.
Se hai apportato altre modifiche alla VM che devono essere sincronizzate con l'istanza VM corrispondente, il runtime VM su GDC riavvia la VM. Se hai apportato solo la modifica per abilitare i riavvii automatici, non è necessario riavviare la VM.
Controlla
status
della VM:kubectl get gvm VM_NAME
A seconda della velocità con cui ottieni la VM, potresti visualizzare
state: Starting
quando la VM si riavvia. Dopo il riavvio della VM, viene visualizzato il messaggiostate: Running
. Le successive modifiche alla configurazione della risorsa personalizzataVirtualMachine
non richiedono di arrestare e avviare la VM manualmente. Le modifiche successive alla risorsa personalizzata si riflettono in modo coerente nell'istanza VM.
Tieni presente il seguente comportamento situazionale delle funzionalità:
Se arresti una VM manualmente prima di modificare la risorsa personalizzata
VirtualMachine
, la modifica alla configurazione non attiva un riavvio. Lo stato interrotto della VM prima della modifica permanente della configurazione.Se hai apportato modifiche alle etichette o alla pianificazione per la VM prima di abilitare la funzionalità di riavvio automatico, l'aggiunta di
autoRestartOnConfigurationChange
senza altre modifiche non attiva un riavvio. Idealmente, questa funzionalità mantiene l'istanza VM coerente con la configurazione VM. Tuttavia, il runtime VM su GDC non è in grado di rilevare le incoerenze precedenti.
Passaggi successivi
- Crea VM con configurazioni di calcolo di vCPU e memoria specifiche in Google Distributed Cloud.
- Creare e gestire dischi in Google Distributed Cloud.