Kurzanleitung: VM in GKE on Bare-Metal-Clustern erstellen

In dieser Kurzanleitung erfahren Sie, wie Sie mit der VM-Laufzeit in GDC eine virtuelle Maschine (VM) in GKE on Bare Metal erstellen. VM Runtime auf GDC nutzt KubeVirt zur Orchestrierung von VMs auf Clustern und ermöglicht Ihnen die Arbeit mit Ihren VM-basierten Anwendungen und Arbeitslasten in einer einheitlichen Entwicklungsumgebung.

Hinweise

Für diese Kurzanleitung benötigen Sie Zugriff auf den GKE on Bare Metal-Cluster ab Version 1.12 (anthosBareMetalVersion: 1.12). Sie können einen beliebigen Clustertyp verwenden, der Arbeitslasten ausführen kann. Testen Sie bei Bedarf GKE on Bare Metal in Compute Engine oder sehen Sie sich die Übersicht über die Clustererstellung an.

VM-Laufzeit auf GDC aktivieren

Die VM-Laufzeit auf GDC wird in GKE on Bare Metal Version 1.10 oder höher automatisch installiert, ist aber standardmäßig deaktiviert. Bevor Sie VM-Ressourcen in GKE on Bare Metal ausführen können, müssen Sie die VM-Laufzeit auf GDC aktivieren.

bmctl

GKE on Bare Metal Version 1.11 oder höher kann das bmctl-Befehlszeilentool verwenden:

  • Verwenden Sie das Tool bmctl, um die Laufzeit zu aktivieren:

    bmctl enable vmruntime --kubeconfig KUBECONFIG_PATH
    

    Geben Sie den Pfad zur kubeconfig-Datei für Ihren Cluster an. GKE on Bare Metal generiert die kubeconfig-Datei auf der Administrator-Workstation, wenn Sie einen Cluster erstellen. Der Pfad ist standardmäßig bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.

    Wenn die VM-Laufzeit auf GDC bereits aktiviert ist, gibt der Befehl einen Fehler zurück.

Benutzerdefinierte Ressource

GKE on Bare Metal Version 1.10 oder höher kann eine benutzerdefinierte Ressourcendefinition verwenden, um die VM-Laufzeit auf GDC zu aktivieren. Diese benutzerdefinierte Ressource wird standardmäßig installiert.

  1. Bearbeiten Sie die benutzerdefinierte VMRuntime-Ressource:

    kubectl edit vmruntime
    
  2. Legen Sie enabled:true in der Spezifikation fest:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: true
      # useEmulation defaults to "false" if not set.
      useEmulation: true
      # vmImageFormat defaults to "qcow2" if not set.
      vmImageFormat: qcow2
    

    Im vorherigen Abschnitt spec können die folgenden Werte festgelegt werden:

    • enabled: auf „true“ setzen, um die VM-Laufzeit auf GDC zu aktivieren
    • useEmulation: Wenn Ihr Knoten die Hardwarevirtualisierung nicht unterstützt oder Sie sich nicht sicher sind, legen Sie den Wert auf "true" fest. Die Hardwarevirtualisierung bietet eine bessere Leistung als die Softwareemulation. Das Feld useEmulation ist standardmäßig auf false gesetzt, wenn es nicht angegeben ist.
    • vmImageFormat: Unterstützt zwei Laufwerk-Image-Format-Werte: raw und qcow2. Wenn Sie vmImageFormat nicht festlegen, verwendet die VM-Laufzeit auf GDC das Laufwerk-Image-Format raw zum Erstellen von VMs. Das Format raw bietet möglicherweise eine bessere Leistung gegenüber qcow2, eine Kopie des Schreibformats, benötigt aber möglicherweise mehr Platz auf dem Laufwerk. Weitere Informationen zu den Image-Formaten für Ihre VM finden Sie in der QEMU-Dokumentation unter Dateiformate für Laufwerk-Images.
  3. Speichern Sie die benutzerdefinierte Ressource in Ihrem Editor.

  4. Prüfen Sie, ob die benutzerdefinierte Ressource VMRuntime aktiviert ist:

    kubectl describe vmruntime vmruntime
    

    Die Details der benutzerdefinierten Ressource VMRuntime enthalten den Abschnitt Status. VM-Laufzeit auf GDC ist aktiviert und funktioniert, wenn für VMRuntime.Status.Ready als true angezeigt wird.

virtctl-Clienttool installieren

Erstellen und verwalten Sie VMs, indem Sie das virtctl-Clienttool installieren.

  1. Installieren Sie das virtctl-CLienttool als kubectl-Plug-in.

    export GOOGLE_APPLICATION_CREDENTIALS="PATH_TO_SERVICE_ACCOUNT_KEY/bm-gcr.json"
    sudo -E bmctl install virtctl
    

    Mit den Anmeldedaten können Sie das virtctl-Clienttool authentifizieren und herunterladen und dann unter /usr/bin/kubectl-virt auf Ihrem lokalen Computer installieren.

  2. Überprüfen Sie, ob das Plug-in virtctl installiert ist:

    kubectl plugin list
    

    Wenn kubectl-virt in der Antwort aufgeführt ist, wurde das Plug-in erfolgreich installiert.

    Wenn kubectl-virt nicht aufgeführt ist, prüfen Sie die Datei install-virtctl.log, wie sie in der Ausgabe des vorherigen bmctl install-Befehls angegeben, z. B. bmctl-workspace/log/install-virtctl-[date]/install-virtctl.log.

VM erstellen

In dieser Kurzanleitung verwenden Sie die kubectl-Befehlszeile, um eine VM zu erstellen, die ein öffentliches VM-Image und Standardanmeldedaten verwendet.

  1. Erstellen Sie eine VM in Ihrem Cluster. Das Plug-in virtctl wird mit dem Befehl kubectl verwendet:

    kubectl virt create vm VM_NAME \
        --image ubuntu20.04 \
        --configure-initial-password USERNAME:PASSWORD
    

    Dieser Befehl erstellt eine Ubuntu 20.04-VM und Standardeinstellungen von 2 CPU, 4Gi Arbeitsspeicher und ein 20Gi Bootlaufwerk im ReadWriteOnce-Modus und unter Verwendung der Speicherklasse local-shared. Ersetzen Sie die folgenden Werte:

    • VM_NAME: der Name Ihrer VM. VM-Namen dürfen nur kleingeschriebene alphanumerische Zeichen oder „-“ enthalten und mit einem alphanumerischen Zeichen beginnen und enden. Sie dürfen höchstens 63 Zeichen enthalten. Weitere Informationen finden Sie in der Kubernetes-Dokumentation unter RFC 1123-Labelnamen.
    • USERNAME: Nutzername für das Konto, das auf der VM erstellt werden soll.
    • PASSWORD: das Passwort für das Nutzerkonto.

    Wenn ein Fehler zu Befehlszeilenparametern zurückgegeben wird, prüfen Sie, ob Ihr Cluster die Version 1.11.1 oder höher hat und ob Sie die neueste Version des Clienttools virtctl haben. Weitere Informationen zu Befehlszeilenfehlern finden Sie im Konsolenlog. Informationen zu den Regeln für Nutzername und Passwort finden Sie in der Dokumentation des Gastbetriebssystems. Wenn etwas nicht wie erwartet funktioniert, suchen Sie nach bekannten Problemen bei der VM-Laufzeit auf GDC.

  2. Es kann einige Minuten dauern, bis die VM erstellt ist. Prüfen Sie den Status der VM mit dem Befehl kubectl:

    kubectl get gvm
    

    Das folgende Ausgabebeispiel zeigt die VM im Status Running:

    NAME         STATUS    AGE   IP
    vm-sample1   Running   64s   192.168.2.124
    

Mit VM verbinden.

Wenn Ihre VM ausgeführt wird, stellen Sie eine Verbindung zur Konsole der VM her.

  1. Verwenden Sie kubectl, um über die Console auf eine VM zuzugreifen:

    kubectl virt console VM_NAME
    
  2. Geben Sie bei entsprechender Aufforderung die Nutzeranmeldedaten ein, die Sie zum Erstellen der VM verwendet haben.

  3. Nachdem Sie erfolgreich eine Verbindung zur Konsole der VM hergestellt haben, beenden Sie die VM-Sitzung und die Console:

    Ctrl + ]
    

Bereinigen

So bereinigen Sie die in dieser Kurzanleitung erstellten Ressourcen:

  1. Verwenden Sie kubectl zum Löschen der VM und des zugehörigen DataVolumes:

    kubectl virt delete vm VM_NAME --all
    

Nächste Schritte