Auf dieser Seite wird beschrieben, wie Sie virtuelle Maschinen in Google Distributed Cloud Connected verwalten, auf denen VM Runtime on Google Distributed Cloud ausgeführt wird. Sie müssen mit der VM Runtime on GDC vertraut sein, bevor Sie die Schritte auf dieser Seite ausführen. Eine Liste der unterstützten Gastbetriebssysteme finden Sie unter Verifizierte Gastbetriebssysteme für VM Runtime auf GDC.
Informationen dazu, wie virtuelle Maschinen als wesentliche Komponente der verbundenen Plattform von Distributed Cloud dienen, finden Sie unter GKE Enterprise erweitern, um lokale Edge-VMs zu verwalten.
Lokale Steuerungsebenencluster unterstützen VM-Webhooks. So kann Distributed Cloud Connected Nutzeranfragen validieren, die an den lokalen Kubernetes API-Server gesendet werden. Bei abgelehnten Anfragen werden detaillierte Informationen zum Ablehnungsgrund generiert.
VM Runtime on GDC-Unterstützung in Distributed Cloud Connect aktivieren
Standardmäßig ist die Unterstützung für virtuelle Maschinen in VM Runtime on GDC für Distributed Cloud Connected deaktiviert. Führen Sie die Schritte in diesem Abschnitt aus, um die Funktion zu aktivieren. Bei der Anleitung in diesem Abschnitt wird davon ausgegangen, dass Sie einen voll funktionsfähigen Distributed Cloud Connect-Cluster haben.
Die VMRuntime-Ressource, mit der die Unterstützung von VM Runtime on GDC auf Distributed Cloud Connected konfiguriert wird, konfiguriert auch die GPU-Unterstützung in Ihrem Cluster mit dem Parameter enableGPU. Konfigurieren Sie die beiden Parameter entsprechend den Anforderungen Ihrer Arbeitslast. Sie müssen die GPU-Unterstützung nicht aktivieren, um die Unterstützung von VM Runtime in GDC in Ihrem mit Distributed Cloud verbundenen Cluster zu aktivieren.
In der folgenden Tabelle werden die verfügbaren Konfigurationen beschrieben:
enable Wert |
enableGPU Wert |
Resultierende Konfiguration |
|---|---|---|
false |
false |
Arbeitslasten werden nur in Containern ausgeführt und können keine GPU-Ressourcen verwenden. |
false |
true |
Arbeitslasten werden nur in Containern ausgeführt und können GPU-Ressourcen verwenden. |
true |
true |
Arbeitslasten können auf virtuellen Maschinen und in Containern ausgeführt werden. Für beide Arten von Arbeitslasten können GPU-Ressourcen verwendet werden. |
true |
false |
Arbeitslasten können auf virtuellen Maschinen und in Containern ausgeführt werden. Für beide Arten von Arbeitslasten können keine GPU-Ressourcen verwendet werden. |
Wenn Sie die GPU-Unterstützung bereits aktiviert haben, ändern Sie die VMRuntime-Ressource, um den Parameter enable hinzuzufügen, legen Sie den Wert auf true fest und wenden Sie ihn dann auf Ihren Distributed Cloud-Cluster an.
Aktivieren Sie das VM Runtime on GDC-Subsystem für virtuelle Maschinen.
Führen Sie je nach Art des Clusters, auf dem Sie das VM-Subsystem „VM Runtime on GDC“ aktivieren möchten, einen der folgenden Schritte aus:
- Bei Clustern mit Cloud-Steuerungsebene müssen Sie die
VMRuntime-Ressource manuell erstellen. - Bei Clustern mit lokaler Steuerungsebene müssen Sie die vorhandene
VMRuntime-Ressource bearbeiten.
Führen Sie die folgenden Schritte aus, um die VM Runtime im GDC-Subsystem für virtuelle Maschinen zu aktivieren:
Erstellen oder ändern Sie je nach Zielclustertyp die benutzerdefinierte
VMRuntime-Ressource mit dem folgenden Inhalt und wenden Sie sie auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: # Enable Anthos VM Runtime support enabled: true # vmImageFormat defaults to "raw" if not set vmImageFormat: "raw"
Ändern Sie den Wert des Parameters
vmImageFormatnicht. Distributed Cloud Connected unterstützt keine anderen virtuellen Festplattenformate.Dieser Vorgang dauert in der Regel einige Minuten.
Verwenden Sie den folgenden Befehl, um zu prüfen, ob die benutzerdefinierte Ressource
VMRuntimeauf Ihren Cluster angewendet wurde:kubectl get vmruntime -o yaml
Der Befehl gibt eine Ausgabe ähnlich dem folgenden Beispiel zurück:
- apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime ... spec: enabled: true vmImageFormat: raw status: ... ready: true ...Mit dem folgenden Befehl können Sie prüfen, ob die Unterstützung von VM Runtime on GDC-VMs in Ihrem Cluster aktiviert wurde:
kubectl get pods -n vm-system
Der Befehl gibt eine Ausgabe zurück, die die VM-Laufzeit auf GDC-Subsystem-Pods zeigt, die in Ihrem Cluster ausgeführt werden. Die Ausgabe sieht in etwa so aus:
NAME READY STATUS RESTARTS AGE cdi-apiserver-6c76c6cf7b-n68wn 1/1 Running 0 132m cdi-deployment-f78fd599-vj7tv 1/1 Running 0 132m cdi-operator-65c4df9647-fcb9d 1/1 Running 0 134m cdi-uploadproxy-7765ffb694-6j7bf 1/1 Running 0 132m macvtap-fjfjr 1/1 Running 0 134m virt-api-77dd99dbbb-bs2fb 1/1 Running 0 132m virt-api-77dd99dbbb-pqc27 1/1 Running 0 132m virt-controller-5b44dbbbd7-hc222 1/1 Running 0 132m virt-controller-5b44dbbbd7-p8xkk 1/1 Running 0 132m virt-handler-n76fs 1/1 Running 0 132m virt-operator-86565697d9-fpxqh 2/2 Running 0 134m virt-operator-86565697d9-jnbt7 2/2 Running 0 134m vm-controller-controller-manager-7844d5fb7b-72d8m 2/2 Running 0 134m vmruntime-controller-manager-845649c847-m78r9 2/2 Running 0 175m
Ziel-Namespace Zugriff auf die Distributed Cloud Connected-Registry gewähren
Die Schritte in diesem Abschnitt gelten nur für Cluster mit Cloud-Steuerungsebene. Wenn Sie das VM-Subsystem von VM Runtime on GDC in einem lokalen Steuerungsebenencluster konfigurieren, überspringen Sie diesen Abschnitt.
Bevor Sie eine VM in einem Namespace erstellen können, müssen Sie diesem Namespace Zugriff auf die verbundene Distributed Cloud-Registry gewähren. Die Registry enthält Komponenten, die zum Erstellen und Bereitstellen Ihrer VMs im Zielnamespace erforderlich sind. Sie können keine virtuellen Maschinen in Namespaces ausführen, die für die Verwaltung von mit Distributed Cloud verbundenen Systemen reserviert sind. Weitere Informationen finden Sie unter Einschränkungen für Management-Namespaces.
Führen Sie die folgenden Schritte aus, um Ihrem Ziel-Namespace Zugriff auf die mit Distributed Cloud verbundene Registry zu gewähren:
Patchen Sie das Standarddienstkonto im Ziel-Namespace mit dem Schlüssel
imagePullSecretmit dem Namengcr-pull:kubectl patch sa default -p "{\"imagePullSecrets\": [{\"name\": \"gcr-pull\"}]}" -n NAMESPACE
Ersetzen Sie
NAMESPACEdurch den Namen des Ziel-Namespace.Aktualisieren Sie das zugehörige Secret im Ziel-Namespace:
# Delete existing secret. kubectl delete secret gcr-pull -n NAMESPACE --ignore-not-found # Copy the new secret to the target namespace. kubectl get secret gcr-pull -n vm-system -o yaml | sed "s/namespace: vm-system/namespace: NAMESPACE/g" | kubectl apply -f -
Ersetzen Sie
NAMESPACEdurch den Namen des Ziel-Namespace.Das Secret läuft nach einer Stunde ab. Sie müssen sie nach Ablauf manuell aktualisieren.
virtctl-Verwaltungstool installieren
Sie benötigen das Clienttool virtctl, um virtuelle Maschinen in Ihrem mit Distributed Cloud verbundenen Cluster zu verwalten. So installieren Sie das Tool:
Installieren Sie das
virtctl-CLienttool alskubectl-Plug-in.export VERSION=v0.49.0-anthos1.12-gke.7 gcloud storage cp gs://anthos-baremetal-release/virtctl/${VERSION}/linux-amd64/virtctl /usr/local/bin/virtctl cd /usr/local/bin sudo ln -s virtctl kubectl-virt sudo chmod a+x virtctl cd -
Überprüfen Sie, ob das Plug-in
virtinstalliert ist:kubectl plugin list
Wenn das Plug-in erfolgreich installiert wurde, wird
kubectl-virtin der Ausgabe des Befehls als eines der Plug-ins aufgeführt.
VM in Distributed Cloud Connect mit Raw-Blockspeicher bereitstellen
In diesem Abschnitt finden Sie Konfigurationsbeispiele, die veranschaulichen, wie Sie eine Linux-VM und eine Windows-VM in einem mit Distributed Cloud verbundenen Cluster mit Raw-Block-Storage bereitstellen. In den Beispielen wird Blockspeicher verwendet, der als PersistentVolume instanziiert wird.
Einschränkungen bei der Verwendung von Rohblockspeicher
Beim Ausführen von VMs mit Raw-Blockspeicher in Distributed Cloud Connected gelten die folgenden Einschränkungen:
- Das Feld
OSTypewird inVirtualMachine-Ressourcenspezifikationen in Cloud-Steuerungsebenenclustern nicht unterstützt. Aus diesem Grund werden nur die Methodenconsoleundvncfür den Zugriff auf virtuelle Maschinen unterstützt, die in Clustern der Cloud-Steuerungsebene ausgeführt werden. - Sie können keine virtuelle Maschine in einem mit Distributed Cloud verbundenen Cluster direkt mit dem Befehl
kubectl virterstellen, da Distributed Cloud Connected keinen Dateisystemspeicher für virtuelle Maschinen bietet. - Blockspeicherressourcen
PersistentVolumeClaimunterstützen das Festplattenimageformatqcow2nicht. - Das CDI-Plug-in (Containerized Data Importer) unterstützt keine
DataVolume-Ressourcen im Blockspeicher, da der Scratch-Space des Plug-ins nur für Dateisystemspeicher funktioniert. Weitere Informationen finden Sie unter Scratch-Speicherplatz.
Linux-VM auf Distributed Cloud Connect mit Raw-Blockspeicher bereitstellen
Das folgende Beispiel zeigt, wie Sie eine Linux-VM mit Raw-Blockspeicher bereitstellen, auf der Ubuntu Server 22.04 ausgeführt wird. Die Installationsquelle ist das ISO-Laufwerk-Image von Ubuntu Server 22.04.
Erstellen Sie eine
PersistentVolumeClaim-Ressource mit dem folgenden Inhalt für das Installations-Disc-Image von Ubuntu Server und wenden Sie sie dann auf Ihren Cluster an:apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app: containerized-data-importer name: iso-ubuntu annotations: cdi.kubevirt.io/storage.import.endpoint: "https://releases.ubuntu.com/jammy/ubuntu-22.04.3-live-server-amd64.iso" spec: accessModes: - ReadWriteOnce storageClassName: local-block volumeMode: Block resources: requests: storage: 5Gi
Erstellen Sie eine
PersistentVolumeClaim-Ressource mit dem folgenden Inhalt für die virtuelle Festplatte der VM und wenden Sie sie dann auf Ihren Cluster an:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ubuntuhd spec: accessModes: - ReadWriteOnce resources: requests: storage: 15Gi storageClassName: local-block volumeMode: Block
Erstellen Sie eine
VirtualMachineDisk-Ressource mit dem folgenden Inhalt für das Installations-Disc-Image von Ubuntu Server und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: "ubuntu-iso-disk" spec: persistentVolumeClaimName: iso-ubuntu diskType: cdrom
Erstellen Sie eine
VirtualMachineDisk-Ressource mit dem folgenden Inhalt für die virtuelle Festplatte der VM und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: "ubuntu-main-disk" spec: persistentVolumeClaimName: ubuntuhd
Erstellen Sie eine
VirtualMachineType-Ressource mit dem folgenden Inhalt, der die Konfiguration der virtuellen Maschine angibt, und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: small-2-20 spec: cpu: vcpus: 2 memory: capacity: 20Gi
Erstellen Sie eine
VirtualMachine-Ressource mit dem folgenden Inhalt, die die virtuelle Maschine im Cluster instanziiert und startet, und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: labels: kubevirt.io/vm: ubu-vm name: ubu-vm # Propagate the virtual machine name to the VMI spec: osType: Linux compute: virtualMachineTypeName: small-2-20 interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: ubuntu-main-disk boot: true - virtualMachineDiskName: ubuntu-iso-disk
Das Feld
osTypegilt nur für Cluster mit lokaler Steuerungsebene. Sie ist in lokalen Steuerungsebenenclustern erforderlich, um die folgenden Funktionen zu konfigurieren:Installieren Sie Ubuntu Server auf der VM:
- Warten Sie, bis der
importer-Pod das Installations-Disc-Image von Ubuntu Server heruntergeladen hat. Prüfen Sie den Status der virtuellen Maschine:
kubectl get gvm VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielubu-vm.Melden Sie sich auf der virtuellen Maschine an:
kubectl virt vnc VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielubu-vm.Führen Sie die Installationsschritte für Ubuntu Linux aus.
- Warten Sie, bis der
Bereinigen:
Beenden Sie die virtuelle Maschine:
kubectl virt stop VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielubu-vm.Bearbeiten Sie die YAML-Datei der VM, um den Verweis auf das Installations-Disc-Image zu entfernen:
kubectl edit gvm VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielubu-vm.Starten Sie die virtuelle Maschine:
kubectl virt start VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielubu-vm.Löschen Sie die
VirtualMachineDisk- undPersistentVolumeClaim-Ressourcen für das Installations-Disc-Image:kubectl delete virtualmachinedisk ubuntu-iso-disk kubectl delete pvc iso-ubuntu
Windows-VM in Distributed Cloud Connect mit Raw-Blockspeicher bereitstellen
Das folgende Beispiel veranschaulicht, wie Sie eine Windows-VM mit Raw-Blockspeicher bereitstellen. Die Schritte ähneln dem Bereitstellen einer virtuellen Linux-Maschine. Zusätzlich ist das virtio-Treiber-Laufwerk-Image erforderlich, um Windows zu installieren.
Besorgen Sie sich eine lizenzierte Kopie von Windows und das Image des Installationsmediums.
Erstellen Sie eine
PersistentVolumeClaim-Ressource mit dem folgenden Inhalt für das Installations-Disc-Image von Windows und wenden Sie sie dann auf Ihren Cluster an. Eine Anleitung finden Sie unter Aus Bild.Erstellen Sie eine
PersistentVolumeClaim-Ressource mit folgendem Inhalt für denvirtio-Treiber und wenden Sie sie dann auf Ihren Cluster an:apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app: containerized-data-importer name: virtio-driver annotations: cdi.kubevirt.io/storage.import.endpoint: "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso" spec: accessModes: - ReadWriteOnce storageClassName: local-block volumeMode: Block resources: requests: storage: 1Gi
Erstellen Sie eine
PersistentVolumeClaim-Ressource mit dem folgenden Inhalt für die virtuelle Festplatte der VM und wenden Sie sie dann auf Ihren Cluster an:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: windowshd spec: accessModes: - ReadWriteOnce resources: requests: storage: 15Gi storageClassName: local-block volumeMode: Block
Erstellen Sie eine
VirtualMachineDisk-Ressource mit dem folgenden Inhalt für das Installations-Disc-Image von Windows und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: "windows-iso-disk" spec: persistentVolumeClaimName: iso-windows diskType: cdrom
Erstellen Sie eine
VirtualMachineDisk-Ressource mit folgendem Inhalt für denvirtio-Treiber und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: "win-virtio-driver" spec: persistentVolumeClaimName: virtio-driver diskType: cdrom
Erstellen Sie eine
VirtualMachineDisk-Ressource mit dem folgenden Inhalt für die virtuelle Festplatte der VM und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: "windows-main-disk" spec: persistentVolumeClaimName: windowshd
Erstellen Sie eine
VirtualMachineType-Ressource mit dem folgenden Inhalt, der die Konfiguration der virtuellen Maschine angibt, und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: small-2-20 spec: cpu: vcpus: 2 memory: capacity: 20Gi
Erstellen Sie eine
VirtualMachine-Ressource mit dem folgenden Inhalt, die die virtuelle Maschine im Cluster instanziiert und startet, und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: labels: kubevirt.io/vm: win-vm name: win-vm # Propagate the virtual machine name to the VMI spec: osType: Windows compute: virtualMachineTypeName: my-vmt interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: windows-main-disk boot: true - virtualMachineDiskName: windows-iso-disk - virtualMachineDiskName: win-virtio-driver
Das Feld
osTypegilt nur für Cluster mit lokaler Steuerungsebene. Sie ist in lokalen Steuerungsebenenclustern erforderlich, um die folgenden Funktionen zu konfigurieren:Windows auf der VM installieren:
- Warten Sie, bis der
importer-Pod das Windows-Installations-Disc-Image heruntergeladen hat. Prüfen Sie den Status der virtuellen Maschine:
kubectl get gvm VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielwin-vm.Schließen Sie die Windows-Installation ab, indem Sie den Schritten unter Verbindung zur Windows-VM herstellen und Betriebssysteminstallation abschließen folgen.
- Warten Sie, bis der
Bereinigen:
Beenden Sie die virtuelle Maschine:
kubectl virt stop VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielwin-vm.Führen Sie die Schritte unter ISO-Image und Treiber-CD trennen aus.
VM in Distributed Cloud Connected mit Symcloud Storage bereitstellen
In diesem Abschnitt finden Sie Konfigurationsbeispiele, die veranschaulichen, wie Sie eine Linux-VM und eine Windows-VM in einem mit Distributed Cloud verbundenen Cluster mit der Symcloud Storage-Abstraktionsschicht bereitstellen.
Bevor Sie die Schritte in diesem Abschnitt ausführen, müssen Sie zuerst die Schritte unter Distributed Cloud Connected für Symcloud Storage konfigurieren ausführen. Wenn Sie Symcloud Storage später im Cluster deaktivieren, schlagen virtuelle Maschinen fehl, die für die Verwendung von Symcloud Storage konfiguriert sind.
Eine virtuelle Linux-Maschine in Distributed Cloud Connected mit Symcloud Storage bereitstellen
Im folgenden Beispiel wird gezeigt, wie Sie eine Linux-VM mit Symcloud Storage bereitstellen, auf der Ubuntu Server 22.04 ausgeführt wird. Die Installationsquelle ist das ISO-Laufwerk-Image von Ubuntu Server 22.04.
Erstellen Sie eine
VirtualMachineDisk-Ressource mit dem folgenden Inhalt für das Installations-Disc-Image von Ubuntu Server und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: ubuntu-iso-disk spec: size: 20Gi storageClassName: robin diskType: cdrom source: http: url: https://releases.ubuntu.com/jammy/ubuntu-22.04.3-live-server-amd64.iso
Erstellen Sie eine
VirtualMachineDisk-Ressource mit dem folgenden Inhalt für die virtuelle Festplatte der VM und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: "ubuntu-main-disk" spec: size: 200Gi storageClassName: robin
Erstellen Sie eine
VirtualMachineType-Ressource mit dem folgenden Inhalt, der die Konfiguration der virtuellen Maschine angibt, und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: small-2-20 spec: cpu: vcpus: 2 memory: capacity: 20Gi
Erstellen Sie eine
VirtualMachine-Ressource mit dem folgenden Inhalt, die die virtuelle Maschine im Cluster instanziiert und startet, und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: labels: kubevirt.io/vm: ubu-vm name: ubu-vm # Propagate the virtual machine name to the VMI spec: osType: Linux compute: virtualMachineTypeName: small-2-20 interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: ubuntu-main-disk boot: true - virtualMachineDiskName: ubuntu-iso-disk
Das Feld
osTypegilt nur für Cluster mit lokaler Steuerungsebene. Sie ist in lokalen Steuerungsebenenclustern erforderlich, um die folgenden Funktionen zu konfigurieren:Installieren Sie Ubuntu Server auf der VM:
- Warten Sie, bis der
importer-Pod das Installations-Disc-Image von Ubuntu Server heruntergeladen hat. Prüfen Sie den Status der virtuellen Maschine:
kubectl get gvm VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielubu-vm.Melden Sie sich auf der virtuellen Maschine an:
kubectl virt vnc VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielubu-vm.Führen Sie die Installationsschritte für Ubuntu Linux aus.
- Warten Sie, bis der
Bereinigen:
Beenden Sie die virtuelle Maschine:
kubectl virt stop VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielubu-vm.Bearbeiten Sie die YAML-Datei der VM, um den Verweis auf das Installations-Disc-Image zu entfernen:
kubectl edit gvm VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielubu-vm.Starten Sie die virtuelle Maschine:
kubectl virt start VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielubu-vm.Löschen Sie die
VirtualMachineDisk-Ressource für das Installations-Disc-Image:kubectl delete virtualmachinedisk ubuntu-iso-disk
Windows-VM in Distributed Cloud Connected mit Symcloud Storage bereitstellen
Das folgende Beispiel veranschaulicht, wie Sie eine Windows-VM mit Symcloud Storage bereitstellen. Die Schritte ähneln dem Bereitstellen einer virtuellen Linux-Maschine. Zusätzlich ist das virtio-Treiber-Laufwerk-Image erforderlich, um Windows zu installieren.
Besorgen Sie sich eine lizenzierte Kopie von Windows und das Image des Installationsmediums.
Erstellen Sie eine
VirtualMachineDisk-Ressource mit dem folgenden Inhalt für das Installations-Disc-Image von Windows und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: windows-iso-disk namespace: default spec: size: 5Gi storageClassName: robin diskType: cdrom source: http: url: WINDOWS_ISO_URL
Ersetzen Sie
NAT_GATEWAYdurch die vollständige URL zum ISO-Datenträger-Image der Windows-Zielinstallation.Erstellen Sie eine
VirtualMachineDisk-Ressource mit folgendem Inhalt für denvirtio-Treiber und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: windows-virtio-driver namespace: default spec: size: 1Gi storageClassName: robin diskType: cdrom source: http: url: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
Erstellen Sie eine
VirtualMachineDisk-Ressource mit dem folgenden Inhalt für die virtuelle Festplatte der VM und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: windows-main-disk namespace: default spec: size: 15Gi storageClassName: robin
Erstellen Sie eine
VirtualMachineType-Ressource mit dem folgenden Inhalt, der die Konfiguration der virtuellen Maschine angibt, und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: small-2-20 spec: cpu: vcpus: 2 memory: capacity: 20Gi
Erstellen Sie eine
VirtualMachine-Ressource mit dem folgenden Inhalt, die die virtuelle Maschine im Cluster instanziiert und startet, und wenden Sie sie dann auf Ihren Cluster an:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: labels: kubevirt.io/vm: win-vm name: win-vm # Propagate the virtual machine name to the VMI spec: osType: Windows compute: virtualMachineTypeName: my-vmt interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: windows-main-disk boot: true - virtualMachineDiskName: windows-iso-disk - virtualMachineDiskName: win-virtio-driver
Das Feld
osTypegilt nur für Cluster mit lokaler Steuerungsebene. Sie ist in lokalen Steuerungsebenenclustern erforderlich, um die folgenden Funktionen zu konfigurieren:Windows auf der VM installieren:
- Warten Sie, bis der
importer-Pod das Windows-Installations-Disc-Image heruntergeladen hat. Prüfen Sie den Status der virtuellen Maschine:
kubectl get gvm VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielwin-vm.Schließen Sie die Windows-Installation ab, indem Sie den Schritten unter Verbindung zur Windows-VM herstellen und Betriebssysteminstallation abschließen folgen.
- Warten Sie, bis der
Bereinigen:
Beenden Sie die virtuelle Maschine:
kubectl virt stop VM_NAME
Ersetzen Sie
VM_NAMEdurch den Namen der virtuellen Maschine, in diesem Beispielwin-vm.Führen Sie die Schritte unter ISO-Image und Treiber-CD trennen aus.
Eine virtuelle Maschine in Distributed Cloud Connected mit virtctl bereitstellen
Wenn Sie die Anpassung, die durch das Schreiben eigener Ressourcenspezifikationen für Ihre virtuellen Maschinen bereitgestellt wird, nicht benötigen, können Sie eine virtuelle Maschine in Distributed Cloud mit dem virtctl-Befehlszeilentool wie unter VM erstellen beschrieben bereitstellen.
Virtuelle Maschinen verwalten, die in Distributed Cloud Connected ausgeführt werden
Eine Anleitung zum Verwalten von virtuellen Maschinen, die auf Distributed Cloud Connected ausgeführt werden, finden Sie in der folgenden Dokumentation zu VM Runtime on GDC:
- Verbindung zu VMs herstellen
- VMs auflisten und ansehen
- Leistungsstatus verwalten
- VM bearbeiten
- VM löschen
- VM-Konsolenlogs ansehen
Wenn Sie virtuelle Maschinen verwalten möchten, die in Clustern mit lokaler Steuerungsebene ausgeführt werden, müssen Sie zuerst die kubectl-Verbindung konfigurieren.
ttyS0-Gerät für den Zugriff auf die serielle Konsole virtueller Linux-Maschinen konfigurieren
Wenn Sie über die serielle Konsole (kubectl virt console) auf Ihre virtuellen Linux-Maschinen zugreifen möchten, muss das serielle Konsolengerät ttyS0 im Gastbetriebssystem konfiguriert sein. Führen Sie die folgenden Schritte aus, um dieses Gerät zu konfigurieren:
Instanziieren Sie das serielle Gerät
ttyS0im System:setserial -g /dev/ttyS0
Konfigurieren Sie den
grub-Bootloader für die Verwendung des seriellen GerätsttyS0, indem Sie die folgenden Zeilen in Ihre/etc/default/grub-Konfigurationsdatei einfügen. Die erste Zeile ersetzt Ihre vorhandeneGRUB_CMDLINE_LINUX-Variable.GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,19200n8' GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1"
Wenden Sie die neue
grub-Konfiguration auf Ihren Bootsektor an:update-grub
Starten Sie die virtuelle Maschine neu.
VM Runtime on GDC in Distributed Cloud Connect deaktivieren
Führen Sie die Schritte in diesem Abschnitt aus, um VM Runtime on GDC auf Distributed Cloud Connected zu deaktivieren. Bevor Sie die VM Runtime on GDC in einem Distributed Cloud Connected-Cluster deaktivieren können, müssen Sie alle VMs in Ihrem Distributed Cloud Connected-Cluster beenden und löschen, wie unter VM löschen beschrieben.
Um VM Runtime on GDC on Distributed Cloud Connected zu deaktivieren, ändern Sie die benutzerdefinierte Ressource VMRuntime, indem Sie den Spezifikationsparameter enabled wie folgt auf false festlegen, und wenden Sie sie dann auf Ihren Cluster an:
apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: # Disable Anthos VM Runtime enabled: false # vmImageFormat defaults to "raw" if not set vmImageFormat: "raw"
Nächste Schritte
- Arbeitslasten in Distributed Cloud Connected bereitstellen
- GPU-Arbeitslasten verwalten
- Zonen verwalten
- Maschinen verwalten
- Cluster verwalten
- Knotenpools verwalten