Wenn Sie VMs erstellen, die die VM-Laufzeit in Google Distributed Cloud verwenden, können Sie Rechenressourcen auf zwei Arten konfigurieren:
- CPU und Arbeitsspeicher manuell angeben: Definieren Sie Rechenressourcen direkt im
VirtualMachine-Manifest. Dieser Ansatz ist nützlich für einmalige VMs oder benutzerdefinierte Arbeitslasten, die eine eindeutige Ressourcenzuweisung erfordern. - VM-Typen erstellen und verwenden: Definieren Sie wiederverwendbare
VirtualMachineType-benutzerdefinierte Ressourcen, die die CPU- und Arbeitsspeicherzuweisungen standardisieren. Dieser Ansatz ist nützlich, um Flotten von VMs zu verwalten, für eine einheitliche Rechenleistung in Ihrem Cluster zu sorgen und die VM-Bereitstellung für Entwickler zu vereinfachen.
Hinweis
Wenn Sie CPU- und Arbeitsspeicherressourcen manuell angeben und VM-Typen erstellen und verwenden möchten, benötigen Sie Zugriff auf die folgenden Ressourcen:
- Ein Distributed Cloud Connected-Cluster der Version 1.9.0 oder höher.
- Das Kubernetes-Befehlszeilentool
kubectlist installiert und für den Zugriff auf Ihren Cluster konfiguriert. Weitere Informationen finden Sie unterkubectlinstallieren. - Optional: Das
virtctl-Clienttool, das als Plug-in fürkubectlinstalliert wurde. Weitere Informationenvirtctl
VM erstellen und CPU und Arbeitsspeicher angeben
Wenn Sie eine VM erstellen, können Sie die CPU- und Speicheranforderungen manuell angeben. Mit dieser Funktion können Sie VMs mit den entsprechenden Rechenressourcen erstellen, die Ihren Anforderungen entsprechen.
Verwenden Sie ein VirtualMachine-Manifest, um eine VM zu erstellen und die CPU und den Arbeitsspeicher anzugeben.
Erstellen Sie in einem Editor Ihrer Wahl ein
VirtualMachine-Manifest wiemy-custom-vm.yaml:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME namespace: NAMESPACE spec: compute: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE interfaces: - name: eth0 networkName: L2_NETWORK_NAME default: true disks: - virtualMachineDiskName: VM_BOOT_NAME-boot-dv boot: true
Legen Sie in dieser YAML-Datei die folgenden Einstellungen fest:
VM_NAME: der Name Ihrer VM.NAMESPACE: der Ziel-Namespace für Ihre VM.L2_NETWORK_NAME: Der Name des L2-Netzwerks, mit dem die VM verbunden werden soll.VCPU_NUMBER: die Anzahl der vCPUs, die der VM zugewiesen werden sollen. Sie können einer VM zwischen 1 und 96 vCPUs zuweisen.MEMORY_SIZE: die Menge an Arbeitsspeicher, die der VM zugewiesen werden soll. Sie können einer VM zwischen 1 Mi und 1 Ti Arbeitsspeicher zuweisen. Weitere Informationen finden Sie in der Kubernetes-Dokumentation unter Arbeitsspeicherressourceneinheiten.VM_BOOT_NAME: Der Name des Bootlaufwerks Ihrer VM. Das Bootlaufwerk muss bereits vorhanden sein. Weitere Informationen finden Sie unter VM-Laufwerk aus einem VM-Image erstellen.
Die VM verbindet die
eth0-Schnittstelle mit dem angegebenen L2-Netzwerk.Wenden Sie das Manifest mit dem Befehl
kubectl applyauf Ihren mit Distributed Cloud verbundenen Cluster an, um die VM zu erstellen:kubectl apply -f my-custom-vm.yamlPrüfen Sie mit dem Befehl
kubectl get, ob die VM erstellt wurde:kubectl get vm VM_NAME -n NAMESPACEIn der erwarteten Ausgabe wird der VM-Status angezeigt. Sie können auch den Befehl
kubectl describeverwenden, um die detaillierte Konfiguration einschließlich der zugewiesenen CPU und des zugewiesenen Arbeitsspeichers aufzurufen.
VM-Typen erstellen und verwenden
Wenn Sie die VM-Laufzeit auf GDC aktivieren, wird die benutzerdefinierte Ressourcendefinition VirtualMachineType in Ihrem Cluster verfügbar. Mit diesem Ressourcentyp können Sie wiederverwendbare Vorlagen erstellen, in denen bestimmte CPU- und Speicherzuweisungen definiert werden.
Wenn Sie benutzerdefinierte VM-Typen für Ihre verschiedenen Arbeitslasten erstellen, können Sie mehrere VMs mit konsistenten Konfigurationen für Rechenressourcen bereitstellen.
Wenn VM Runtime auf GDC in Distributed Cloud Connected aktiviert ist, ist möglicherweise ein vordefinierter VM-Typ verfügbar. Sie können diesen vordefinierten VM-Typ nicht aktualisieren. Die folgende Definition zeigt den Standard-VM-Typ example-machinetype:
apiVersion: vm.cluster.gke.io/v1
kind: VirtualMachineType
metadata:
name: "example-machinetype"
labels:
vm.cluster.gke.io/predefined-machinetype: "true"
spec:
cpu:
vcpus: 2
memory:
capacity: 4G
VM-Typ erstellen
Sie können eigene VM-Typen erstellen, die auf die Rechenanforderungen Ihrer Arbeitslasten zugeschnitten sind.
Erstellen Sie in einem Editor Ihrer Wahl ein
VirtualMachineType-Manifest wiemy-vm-type.yaml:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: VM_TYPE_NAME spec: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE
Für diesen VM-Typ legen Sie die folgenden Einstellungen fest:
VM_TYPE_NAME: der Name Ihres VM-Typs.VCPU_NUMBER: die Anzahl der vCPUs, die der VM zugewiesen werden sollen. Sie können einer VM zwischen 1 und 96 vCPUs zuweisen.MEMORY_SIZE: die Menge an Arbeitsspeicher, die der VM zugewiesen werden soll. Sie können einer VM zwischen 1 Mi und 1 Ti Arbeitsspeicher zuweisen. Weitere Informationen finden Sie in der Kubernetes-Dokumentation unter Arbeitsspeicherressourceneinheiten.
Wenden Sie das Manifest mit dem Befehl
kubectl applyauf Ihren mit Distributed Cloud verbundenen Cluster an, um den VM-Typ zu erstellen:kubectl apply -f my-vm-type.yamlFühren Sie den Befehl
kubectl getaus, um zu prüfen, ob der VM-Typ erstellt wurde:kubectl get virtualmachinetype VM_TYPE_NAME
VM mit einem VM-Typ erstellen
Wenn Sie die in einem VM-Typ definierten CPU- und Arbeitsspeichereinstellungen auf Ihre VM anwenden möchten, geben Sie den Namen des VM-Typs im Abschnitt compute des VirtualMachine-Manifests an.
Erstellen Sie in einem Editor Ihrer Wahl ein
VirtualMachine-Manifest wiemy-custom-vm.yaml. Geben Sie in dieser YAML-Datei den Namen des benutzerdefinierten VM-Typs an, den Sie im vorherigen Abschnitt erstellt haben, z. B.my-vm-type, als Wert fürvirtualMachineTypeName.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME namespace: NAMESPACE spec: compute: virtualMachineTypeName: VM_TYPE_NAME interfaces: - name: eth0 networkName: L2_NETWORK_NAME default: true disks: - virtualMachineDiskName: VM_BOOT_NAME-boot-dv boot: true
Legen Sie die folgenden Einstellungen fest:
VM_NAME: der Name Ihrer VM.NAMESPACE: der Ziel-Namespace für Ihre VM.L2_NETWORK_NAME: Der Name des L2-Netzwerks, mit dem die VM verbunden werden soll.VM_TYPE_NAME: Der Name des benutzerdefinierten VM-Typs, den Sie im vorherigen Abschnitt erstellt haben, z. B.my-vm-type.VM_BOOT_NAME: Der Name des Bootlaufwerks Ihrer VM. Das Bootlaufwerk muss bereits vorhanden sein. Weitere Informationen finden Sie unter VM-Laufwerk aus einem VM-Image erstellen.
Die VM verbindet die
eth0-Schnittstelle mit dem angegebenen L2-Netzwerk.Wenden Sie das Manifest mit dem Befehl
kubectl applyauf Ihren mit Distributed Cloud verbundenen Cluster an, um die VM zu erstellen:kubectl apply -f my-custom-vm.yamlFühren Sie den Befehl
kubectl getmit der Option-o jsonpathaus, um zu prüfen, ob die VM den VM-Typ verwendet:kubectl get vm VM_NAME -n NAMESPACE -o jsonpath='{.spec.compute.virtualMachineTypeName}'In der erwarteten Ausgabe wird der Name Ihres VM-Typs angezeigt.