Modificare la configurazione della VM nel runtime della VM su GDC

Questo documento è rivolto ai proprietari di applicazioni che utilizzano Runtime VM su GDC per l'esecuzione di macchine virtuali (VM) in Google Distributed Cloud. Questo documento mostra come modificare le VM in esecuzione di Google Distributed Cloud. Ad esempio, puoi modificare le risorse come CPU e memoria, oppure modificare 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. Altri campi, come il nome della VM (metadata.name), non possono essere modificati. Per impostazione predefinita, la VM deve trovarsi in un percorso Stopped prima di modificare la risorsa. Tuttavia, a partire dalla versione 1.13.0 di Google Distributed Cloud, puoi configurare la risorsa VirtualMachine in modo che si riavvii automaticamente ogni volta che modifichi la configurazione.

Se le modifiche apportate alla risorsa VirtualMachine contengono errori al momento del salvataggio, le modifiche vengono rifiutate e viene visualizzata una notifica. Correggi gli errori e riprova a salvare la risorsa VirtualMachine. Se la tua VM non dopo aver apportato le modifiche, utilizza Comando kubectl describe gvm VM_NAME per visualizzare le informazioni per la risoluzione dei problemi e correggere gli errori.

Prima di iniziare

Per completare questo documento, devi disporre dell'accesso alle seguenti risorse:

Modificare le risorse di calcolo

Se le esigenze del tuo carico di lavoro di computing cambiano, puoi aggiornare il numero CPU e quantità di memoria virtuale assegnata alle VM. Per modificare le risorse di elaborazione, di lavoro, completa i seguenti passaggi:

  1. Arresta la VM che vuoi modificare:

    kubectl virt stop VM_NAME
    

    Sostituisci VM_NAME con il nome della VM che vuoi arrestare.

  2. Utilizza kubectl per modificare la VM:

    kubectl edit gvm VM_NAME
    

    Sostituisci VM_NAME con il nome della VM che che vuoi modificare.

  3. 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 assegnate 2 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
    ...
    
  4. Salva e chiudi il file manifest della VM.

  5. Avvia la VM che hai modificato:

    kubectl virt start VM_NAME
    

    Sostituisci VM_NAME con il nome della VM che modificato.

  6. Controlla STATUS della VM:

    kubectl get gvm VM_NAME
    

    Assicurati che la VM sia in stato Running. Se la VM richiede più risorse di calcolo di quelle che l'host può fornire, non può essere avviata. Se la VM non è in uno stato Running, controlla il manifest delle risorse VirtualMachine e la disponibilità delle risorse di calcolo sull'host.

    L'esempio di output seguente mostra la VM in uno stato Running:

    NAME   STATUS    AGE   IP
    vm1    Running   1m    192.168.2.72
    
  7. Visualizza informazioni dettagliate su una VM utilizzando kubectl describe gvm:

    kubectl describe gvm VM_NAME
    

    Sostituisci VM_NAME con il nome della VM che modificato.

    L'esempio di output seguente mostra le informazioni condensate per una VM, con una variazione del 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, scopri come creare VM con configurazioni di calcolo di vCPU e memoria specifiche.

Modificare le risorse del disco

Se i requisiti di spazio di archiviazione cambiano, puoi aggiungere o rimuovere dischi virtuali da una VM. Per modificare i dischi collegati alla VM:

  1. Arresta la VM che vuoi modificare:

    kubectl virt stop VM_NAME
    

    Sostituisci VM_NAME con il nome della VM che vuoi arrestare.

  2. Utilizza kubectl per modificare la VM:

    kubectl edit gvm VM_NAME
    

    Sostituisci VM_NAME con il nome della VM che che vuoi modificare.

  3. 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 relativa configurazione 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.

  4. Salva e chiudi il file manifest della VM.

  5. Avvia la VM che hai modificato:

    kubectl virt start VM_NAME
    

    Sostituisci VM_NAME con il nome della VM che hai modificato.

  6. Controlla il STATUS della VM:

    kubectl get gvm VM_NAME
    

    Assicurati che la VM sia in stato Running. Se la VM richiede un'StorageClass o un'assegnazione del disco che l'host non può fornire, la VM non può avviarsi. Se la VM non è in uno stato Running, controlla i manifest delle risorse VirtualMachine e VirtualMachineDisk e il supporto dello spazio di archiviazione dell'host.

  7. 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.

    Il seguente esempio di output mostra le informazioni condensate di 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, scopri come creare e gestire i dischi.

Modificare le risorse di rete

Man mano che l'infrastruttura cambia, potresti voler modificare la configurazione di rete di una VM. Ad esempio, potresti voler connettere la VM a una rete virtuale diversa o assegnare manualmente un indirizzo IP. Per modificare la rete per una VM, completa questi passaggi:

  1. Arresta la VM che vuoi modificare:

    kubectl virt stop VM_NAME
    

    Sostituisci VM_NAME con il nome della VM che vuoi interrompi.

  2. Usa kubectl per modificare la VM:

    kubectl edit gvm VM_NAME
    

    Sostituisci VM_NAME con il nome della VM che vuoi modificare.

  3. Nell'editor, aggiorna le impostazioni di configurazione di rete che vuoi modificare.

    Ad esempio, il seguente manifest VirtualMachine di esempio mostra che la VM si connette a una rete denominata backend-vlan100 e utilizza DHCP poiché nessun IP l'indirizzo IP è definito:

    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 modello Indirizzo IP, aggiorna la configurazione della 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 collegarti oppure aggiungi la sezione ipAddresses e specifica il valore IP_ADDRESS da utilizzare per la VM.

  4. Salva e chiudi il file manifest della VM.

  5. Avvia la VM che hai modificato:

    kubectl virt start VM_NAME
    

    Sostituisci VM_NAME con il nome della VM che hai modificato.

  6. Controlla il STATUS della VM:

    kubectl get gvm VM_NAME
    

    Assicurati che la VM sia in stato Running. Se la VM richiede una connessione di rete che l'host non può fornire, non può essere avviata. Se la VM non è in stato Running, controlla il manifest della risorsa VirtualMachine il supporto della rete host.

  7. 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 condensate per una VM, con un 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 scoprire di più, scopri come creare e gestire reti virtuali.

Configura la VM per i riavvii automatici

Molte modifiche alla configurazione della VM, ad esempio quelle 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 per riavviarsi automaticamente ogni volta che apporti modifiche alla loro configurazione. Quando configurerai una VM per utilizzare questa funzionalità, non dovrai arrestarla e riavviarla quando modifichi la relativa risorsa personalizzata. Il runtime della VM su GDC monitora la VM e, se rileva una modifica alla configurazione, la riavvia automaticamente per sincronizzare le modifiche.

Se utilizzi Config Sync per gestire i file di configurazione YAML, questa funzionalità è particolarmente utile. Senza questa funzione, devi interrompere manualmente la VM prima di apportare modifiche al VirtualMachine e avviare la VM manualmente dopo aver completato le modifiche.

Per attivare i riavvii automatici:

  1. Usa kubectl per modificare la VM:

    kubectl edit gvm VM_NAME
    
  2. Nell'editor, aggiungi il campo autoRestartOnConfigurationChange e impostalo su true.

    Puoi apportare ulteriori modifiche alla VM, ad esempio aggiornare vcpus valore. Se modifichi le impostazioni di compute, il runtime VM su GDC si 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
          ...
    
  3. 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 la modifica solo per attivare i riavvii automatici, non è necessario riavviare la VM.

  4. Controlla status della VM:

    kubectl get gvm VM_NAME
    

    A seconda della velocità con cui ricevi la VM, potresti visualizzare state: Starting al riavvio della VM. Dopo il riavvio della VM, viene visualizzato il messaggio state: Running. Le successive modifiche alla configurazione per il VirtualMachine non richiedono l'arresto e l'avvio manuale della VM. Successiva le modifiche apportate alla risorsa personalizzata si riflettono nell'istanza VM costantemente.

Tieni presente il seguente comportamento della funzionalità in base alla situazione:

  • Se arresti una VM manualmente prima di modificare il campo VirtualMachine personalizzato risorsa, la modifica alla configurazione non attiva un riavvio. Il della VM prima che la modifica della configurazione sia permanente.

  • Se hai apportato modifiche alle etichette o alla pianificazione per la VM prima di abilitare funzionalità di riavvio automatico, aggiunta ora di autoRestartOnConfigurationChange senza altre modifiche non attiva il riavvio. L'ideale è che questa funzionalità mantiene l'istanza VM coerente con la configurazione VM. Tuttavia, il runtime VM su GDC non è in grado di rilevare incoerenze precedenti.

Passaggi successivi