Ridurre al minimo il tempo di avvio della VM

Se vuoi che le tue VM si avvino il più rapidamente possibile, riduci al minimo il tempo di avvio della macchina virtuale (VM) seguendo le istruzioni riportate in questa pagina. La riduzione al minimo del tempo di avvio avviene a scapito dell'efficienza delle risorse: il tuo progetto consuma risorse aggiuntive e ha una superficie di attacco maggiore.

Prima di iniziare

Per utilizzare i comandi dell'interfaccia a riga di comando (CLI) gdcloud, assicurati di aver scaricato, installato e configurato la CLI gdcloud. Tutti i comandi per Distributed Cloud utilizzano la CLI gdcloud o kubectl e richiedono un ambiente del sistema operativo.

Recupera il percorso del file kubeconfig

Per eseguire comandi sul server API Management, assicurati di disporre delle seguenti risorse:

  1. Accedi e genera il file kubeconfig per il server API Management se non ne hai uno.

  2. Utilizza il percorso del file kubeconfig del server API Management per sostituire MANAGEMENT_API_SERVER in queste istruzioni.

Richiedere autorizzazioni e accesso

Per eseguire le attività elencate in questa pagina, devi disporre del ruolo Amministratore macchina virtuale progetto. Segui i passaggi per verificare di disporre del ruolo Amministratore VirtualMachine progetto (project-vm-admin) nello spazio dei nomi del progetto in cui si trova la VM.

Mantieni attive le connessioni ai dischi

Quando una VM viene avviata, l'avvio di una connessione dal nodo della VM al disco della VM richiede alcuni secondi. Per velocizzare l'avvio della VM, la connessione del disco deve essere mantenuta attiva quando la VM viene arrestata, in modo che non venga reinizializzata agli avvii successivi della VM. Per ottenere questo risultato, quando esegui il comando per attivare il keep-alive della connessione del disco, il sistema crea automaticamente un pod fittizio che monta tutti i dischi della VM.

Abilita il mantenimento attivo della connessione del disco

Per mantenere attive le connessioni del disco per una VM denominata VM_NAME nel progetto PROJECT, esegui il seguente comando. In questo caso, il sistema crea automaticamente il pod fittizio:

kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT --type merge --patch $'
metadata:
  annotations:
    disk.virtualmachine.gdc.goog/enable-connection-keep-alive: "true"
'

Sostituisci le variabili in queste istruzioni utilizzando le seguenti definizioni.

VariabileDefinizione
MANAGEMENT_API_SERVER Il file kubeconfig del server API di gestione.
VM_NAME Il nome della VM.
PROJECT Il progetto GDC in cui si trova la VM.

Quando il keep-alive della connessione del disco è abilitato, viene creato un pod denominato disk-connection-keep-alive-VM_NAME nello stesso progetto della VM. Il successivo riavvio della VM è più rapido, così come i tempi di avvio successivi, perché le connessioni del disco della VM vengono mantenute attive dal pod.

Configura l'affinità keep-alive della connessione del disco

Quando la VM viene riavviata, lo scheduler Kubernetes potrebbe selezionare un nodo diverso. Per ridurre le probabilità che ciò accada, configura una regola di affinità tra VM tra la VM e il pod keep-alive. Configura questa operazione in modo che avvenga automaticamente:

kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT --type merge --patch $'
metadata:
  annotations:
    disk.virtualmachine.gdc.goog/add-connection-keep-alive-affinity: "true"
'

In questo modo, alla VM viene aggiunta un'impostazione di affinità preferita al pod keep-alive.

Precisazioni

Esistono due avvertenze per mantenere attive le connessioni ai dischi:

  • Il pod keep-alive comporta un utilizzo aggiuntivo delle risorse:
    • Viene conteggiato ai fini del limite del numero di pod per nodo.
    • Utilizza un indirizzo IP aggiuntivo assegnato da Kubernetes.
    • Utilizza una quantità aggiuntiva trascurabile di CPU e memoria.
  • La superficie di attacco aumenta, perché il nodo in cui è presente il pod keep-alive ha sempre collegati i dischi della VM, anche quando la VM è spenta.

Utilizzare il firmware del BIOS

In GDC, l'avvio di una VM con firmware Unified Extensible Firmware Interface (UEFI) è più lento rispetto all'avvio di una VM con firmware BIOS.

  1. Per garantire un tempo di avvio minimo, imposta il tipo di firmware della VM su BIOS:

    kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT --type merge --patch $'
    spec:
      firmware:
        type: bios
        enableSecureBoot:
    '
    
  2. Se la VM è in esecuzione, riavviala seguendo le istruzioni per riavviare la VM.

Precisazioni

L'avvertenza relativa all'utilizzo del firmware BIOS è che non supporta l'avvio protetto.

Utilizzare un disco di avvio di grandi dimensioni

Per ridurre al minimo il tempo di avvio della VM, collega un disco di avvio con una dimensione di 500 GB o superiore alla VM.