Wenn Ihre VMs so schnell wie möglich hochgefahren werden sollen, können Sie die Startzeit Ihrer virtuellen Maschine (VM) mit der Anleitung auf dieser Seite minimieren. Die Minimierung der Startzeit geht auf Kosten der Ressourceneffizienz – Ihr Projekt verbraucht zusätzliche Ressourcen und hat eine größere Sicherheitslücke.
Hinweise
Wenn Sie die Befehlszeilenbefehle (Command-Line Interface, CLI) von gdcloud
verwenden möchten, müssen Sie die gdcloud
-CLI heruntergeladen, installiert und konfiguriert haben.
Für alle Befehle für Distributed Cloud wird die gdcloud
- oder kubectl
-CLI verwendet. Außerdem ist eine Betriebssystemumgebung erforderlich.
Pfad der kubeconfig-Datei abrufen
Damit Sie Befehle für den Management API-Server ausführen können, benötigen Sie die folgenden Ressourcen:
Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Management API-Server, falls Sie noch keine haben.
Verwenden Sie den Pfad zur kubeconfig-Datei des Management API-Servers, um
MANAGEMENT_API_SERVER
in dieser Anleitung zu ersetzen.
Berechtigungen und Zugriff anfordern
Zum Ausführen der auf dieser Seite aufgeführten Aufgaben benötigen Sie die Rolle „ProjectVirtualMachine Admin“. Prüfen Sie, ob Sie die Rolle „Project VirtualMachine Admin“ (project-vm-admin
) im Namespace des Projekts haben, in dem sich die VM befindet.
Laufwerkverbindungen aufrechterhalten
Wenn eine VM gestartet wird, dauert es einige Sekunden, bis eine Verbindung vom Knoten der VM zum Datenträger der VM hergestellt wird. Damit die VM schneller startet, muss die Laufwerkverbindung beim Herunterfahren der VM aufrechterhalten werden, damit sie bei nachfolgenden VM-Starts nicht neu initialisiert wird. Wenn Sie den Befehl ausführen, um die Keep-Alive-Funktion für die Laufwerkverbindung zu aktivieren, erstellt das System automatisch einen Dummy-Pod, in dem alle Laufwerke der VM eingebunden werden.
Keep-Alive-Funktion für Laufwerksverbindung aktivieren
Führen Sie den folgenden Befehl aus, um die Laufwerkverbindungen für eine VM mit dem Namen VM_NAME
im Projekt PROJECT
aufrechtzuerhalten. In diesem Fall wird der Dummy-Pod automatisch erstellt:
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"
'
Ersetzen Sie die Variablen in dieser Anleitung anhand der folgenden Definitionen.
Variable | Definition |
---|---|
MANAGEMENT_API_SERVER |
Die kubeconfig-Datei des Management API-Servers. |
VM_NAME |
Der Name der VM. |
PROJECT |
Das GDC-Projekt, in dem sich die VM befindet. |
Wenn die Keep-Alive-Funktion für die Laufwerkverbindung aktiviert ist, wird im selben Projekt wie die VM ein Pod mit dem Namen disk-connection-keep-alive-VM_NAME
erstellt. Der nächste VM-Neustart ist schneller, ebenso wie die nachfolgenden Startzeiten, da die Laufwerkverbindungen der VM vom Pod aufrechterhalten werden.
Affinität für Keep-Alive-Verbindungen für Laufwerke einrichten
Der Kubernetes-Scheduler wählt möglicherweise einen anderen Knoten für die VM aus, wenn sie neu gestartet wird. Um die Wahrscheinlichkeit dafür zu verringern, konfigurieren Sie eine VM-zu-VM-Affinitätsregel zwischen der VM und dem Keep-Alive-Pod. So konfigurieren Sie, dass dies automatisch geschieht:
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"
'
Dadurch wird der Keep-Alive-Pod auf der VM mit einer bevorzugten Affinitätseinstellung versehen.
Vorsichtsmaßnahmen
Beim Aufrechterhalten von Festplattenverbindungen sind zwei Dinge zu beachten:
- Der Keep-Alive-Pod verursacht eine zusätzliche Ressourcennutzung:
- Er wird auf das Limit für die Anzahl der Pods pro Knoten angerechnet.
- Dabei wird eine zusätzliche IP-Adresse verwendet, die von Kubernetes zugewiesen wird.
- Es wird nur eine vernachlässigbare zusätzliche Menge an CPU und Arbeitsspeicher verwendet.
- Die Sicherheitsrisiken nehmen zu, da die Laufwerke der VM immer an den Knoten angehängt sind, auf dem sich der Keep-Alive-Pod befindet, auch wenn die VM heruntergefahren ist.
BIOS-Firmware verwenden
In GDC dauert das Starten einer VM mit UEFI-Firmware (Unified Extensible Firmware Interface) länger als das Starten einer VM mit BIOS-Firmware.
Damit die Startzeit möglichst kurz ist, legen Sie den Firmwaretyp der VM auf BIOS fest:
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT --type merge --patch $' spec: firmware: type: bios enableSecureBoot: '
Wenn die VM ausgeführt wird, starten Sie sie neu. Folgen Sie dazu der Anleitung unter VM neu starten.
Vorsichtsmaßnahmen
Der Nachteil der Verwendung von BIOS-Firmware ist, dass sie Secure Boot nicht unterstützt.
Großes Bootlaufwerk verwenden
Um die Startzeit der VM zu minimieren, hängen Sie ein Bootlaufwerk mit einer Größe von mindestens 500 GB an die VM an.