Questo documento è destinato ai proprietari di applicazioni che utilizzano Anthos VM Runtime per eseguire macchine virtuali (VM) in Cluster Anthos on bare metal. Questo documento mostra come modificare le VM in esecuzione nei cluster Anthos. 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 per una VM. 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 poter modificare la risorsa. Tuttavia, a partire da Cluster Anthos on bare metal versione 1.13.0, puoi configurare la risorsa VirtualMachine
per riavviarsi automaticamente ogni volta che cambi la configurazione.
Se le modifiche alla risorsa VirtualMachine
contengono errori quando le salvi, queste vengono rifiutate e vedi una notifica. Correggi gli errori e prova a salvare di nuovo la risorsa VirtualMachine
. Se la VM non si avvia dopo aver apportato 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 in esecuzione in uno dei tuoi cluster. Se necessario, crea una VM in Cluster Anthos on bare metal.
- Lo strumento client
virtctl
è stato installato come plug-in perkubectl
. Se necessario, installa lo strumento client Virtctl.
Modifica risorse di calcolo
Se il tuo carico di lavoro di calcolo richiede modifiche, puoi aggiornare il numero di CPU virtuali e la quantità di memoria virtuale che assegni alle VM. Per modificare i carichi di lavoro di calcolo, 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.Usa
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 da 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 modificata:
kubectl virt start VM_NAME
Sostituisci
VM_NAME
con il nome della VM che hai modificato.Controlla la
STATUS
della VM:kubectl get gvm VM_NAME
Assicurati che la tua VM sia in stato
Running
. Se la tua VM richiede più risorse di calcolo di quelle che l'host può fornire, la VM non può avviarsi. Se la VM non si trova in uno statoRunning
, controlla il manifest della risorsaVirtualMachine
e la disponibilità della risorsa 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 informazioni dettagliate su una VM utilizzando
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 condensate 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 saperne di più, consulta la pagina relativa alla creazione di VM con specifiche configurazioni di vCPU e memoria.
Modifica risorse del disco
Se i requisiti di archiviazione cambiano, puoi aggiungere o rimuovere i dischi virtuali in una VM. Per modificare i dischi collegati alla tua 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.Usa
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 modificata:
kubectl virt start VM_NAME
Sostituisci
VM_NAME
con il nome della VM che hai modificato.Controlla la
STATUS
della VM:kubectl get gvm VM_NAME
Assicurati che la tua VM sia in stato
Running
. Se la tua VM richiede un'assegnazioneStorageClass
o un 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 informazioni dettagliate su una VM utilizzando
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 condensate per una VM, con una modifica applicata ai dischi collegati:
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 maggiori informazioni, consulta la pagina relativa alla creazione e gestione dei dischi.
Modifica risorse di rete
Quando la tua infrastruttura cambia, puoi cambiare la configurazione della rete per una VM. Ad esempio, potresti voler connettere la VM a una rete virtuale diversa o assegnare manualmente un indirizzo IP. Per modificare la configurazione di rete per una 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.Usa
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 di rete da modificare.
Ad esempio, il seguente manifest
VirtualMachine
di esempio mostra che la VM si connette a una rete denominatabackend-vlan100
e utilizza il protocollo DHCP, in quanto non è 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 connette 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 specificaIP_ADDRESS
per la VM da utilizzare.Salva e chiudi il manifest della VM.
Avvia la VM modificata:
kubectl virt start VM_NAME
Sostituisci
VM_NAME
con il nome della VM che hai modificato.Controlla la
STATUS
della VM:kubectl get gvm VM_NAME
Assicurati che la tua VM sia in stato
Running
. Se la VM richiede una connessione di rete che l'host non può fornire, non è possibile avviarla. Se la VM non è in statoRunning
, controlla il manifest della risorsaVirtualMachine
e il supporto della rete host.Visualizza informazioni dettagliate su una VM utilizzando
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 apportata correttamente alla configurazione della rete e dell'indirizzo IP:
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 scoprire di più, scopri come creare e gestire reti virtuali.
Configura la tua VM per i riavvii automatici
Molte modifiche alla configurazione delle VM, come le modifiche alle impostazioni compute
, richiedono l'arresto e il riavvio delle VM in modo che vengano sincronizzate con l'istanza VM corrispondente (VirtualMachineInstance
). Le VM in esecuzione su Cluster Anthos on bare metal versione 1.13.0 o successive possono essere configurate per il riavvio automatico ogni volta che apporti modifiche alla configurazione. Quando configuri una VM per l'utilizzo di questa funzionalità, non devi arrestare e riavviare una VM quando modifichi la relativa risorsa personalizzata. Il runtime VM di Anthos monitora la VM e, se rileva una modifica di configurazione, la riavvia automaticamente per sincronizzare le modifiche.
Se utilizzi Anthos Config Management per gestire i 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 avviarla manualmente dopo aver completato le modifiche.
Per attivare i riavvii automatici:
Usa
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 impostazionicompute
, Anthos VM Runtime riavvia automaticamente la VM 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, Anthos VM Runtime riavvia la VM. Se hai apportato la modifica solo per abilitare i riavvii automatici, non è necessario alcun riavvio VM.
Controlla la
status
della VM:kubectl get gvm VM_NAME
A seconda della velocità con cui ottieni la VM, potresti visualizzare
state: Starting
al riavvio della VM. Quando la VM è stata riavviata, viene visualizzatostate: Running
. Le successive modifiche alla configurazione della risorsa personalizzataVirtualMachine
non richiedono l'arresto e l'avvio manuale della VM. Le modifiche successive alla risorsa personalizzata vengono riportate in modo coerente nell'istanza VM.
Osserva il seguente comportamento relativo alle funzionalità situazionali:
Se interrompi manualmente una VM prima di modificare la risorsa personalizzata
VirtualMachine
, la modifica della configurazione non attiva un riavvio. Lo stato interrotto della VM prima della modifica della configurazione.Se hai apportato modifiche all'etichetta o alla pianificazione della VM prima di abilitare la funzionalità di riavvio automatico, l'aggiunta di
autoRestartOnConfigurationChange
ora senza altre modifiche non attiva un riavvio. Idealmente, questa funzionalità mantiene l'istanza VM coerente con la configurazione VM. Tuttavia, Anthos VM Runtime non è in grado di rilevare le incoerenze precedenti.
Passaggi successivi
- Crea VM con configurazioni di calcolo di vCPU e memoria specifiche in Cluster Anthos on bare metal.
- Crea e gestisci dischi in Cluster Anthos on bare metal.
Crea e gestisci reti virtuali in Cluster Anthos on bare metal.