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:
Accedi e genera il file kubeconfig per il server API Management se non ne hai uno.
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.
Variabile | Definizione |
---|---|
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.
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: '
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.