Anthos-VM-Laufzeit aktivieren oder deaktivieren

In diesem Dokument erfahren Sie, wie Sie die Anthos-VM-Laufzeit aktivieren oder deaktivieren, indem Sie entweder die benutzerdefinierte Ressource VMRuntime aktualisieren oder Befehle vom Typ bmctl ausführen.

Hinweis

Zum Aktivieren oder Deaktivieren der Anthos-VM-Laufzeit benötigen Sie Zugriff auf die folgenden Ressourcen und Tools:

Anthos-VM-Laufzeit aktivieren

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

bmctl

  • 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. Anthos-Cluster auf 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 Anthos-VM-Laufzeit bereits aktiviert ist, gibt der Befehl einen Fehler zurück.

Zusätzliche Einstellungen, z. B. für die Emulation oder das Image-format, können durch Bearbeiten der benutzerdefinierten Ressource VMRuntime konfiguriert werden.

Benutzerdefinierte Ressource

Zum Aktivieren der Laufzeit aktualisieren Sie die benutzerdefinierte Ressource VMRuntime: 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" gesetzt, um die Anthos VM-Laufzeit 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 Anthos VM-Laufzeit das Laufwerk-Image-Format raw, um VMs zu erstellen. 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. Die Anthos VM-Laufzeit ist aktiviert und funktioniert, wenn für VMRuntime.Status.Ready der Wert true angezeigt wird.

Anthos-VM-Laufzeit deaktivieren

Wenn Sie Anthos-VM-Laufzeit nicht mehr verwenden müssen, können Sie diese Funktion deaktivieren.

bmctl

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

    bmctl disable vmruntime --kubeconfig KUBECONFIG_PATH \
      --force=true
    

    Geben Sie den Pfad zur kubeconfig-Datei für Ihren Cluster und die Werte für die folgenden Konfigurationsoptionen an:

    • --force: Gesetzt auf true, um zu bestätigen, dass Sie vorhandene VM-Ressourcen löschen möchten. Der Standardwert ist false.

Benutzerdefinierte Ressource

Zum Deaktivieren der Laufzeit aktualisieren Sie die benutzerdefinierte Ressource VMRuntime:

  1. Bearbeiten Sie die benutzerdefinierte VMRuntime-Ressource:

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

    apiVersion: vm.cluster.gke.io/v1`
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: false
      useEmulation: true
      vmImageFormat: qcow2
    
  3. Speichern Sie die aktualisierte benutzerdefinierte Ressourcenspezifikation in Ihrem Editor.

  4. Wenn Sie prüfen möchten, ob die benutzerdefinierte Ressource VMRuntime deaktiviert ist, rufen Sie die Pods auf, die im Namespace vm-system ausgeführt werden:

    kubectl get pods --namespace vm-system
    

    Die Anthos-VM-Laufzeit wurde deaktiviert, wenn nur die Pods, die zur Bereitstellung vmruntime-controller-manager gehören, im Namespace ausgeführt werden.

Informationen zum Verhalten laufender VMs

Die Annotation baremetal.cluster.gke.io/vmrumtime-force-disable kann für die Anthos VM-Laufzeitressource verwendet werden, um das Verhalten zu definieren, wenn die Laufzeit deaktiviert wird, während VMs im Cluster ausgeführt werden.

Das folgende Beispiel zeigt, dass der Wert dieser Annotation standardmäßig auf false gesetzt ist:

  // VM runtime yaml file
  apiVersion: vm.cluster.gke.io/v1
  kind: VMRuntime
  metadata:
    annotations:
      baremetal.cluster.gke.io/vmrumtime-force-disable: "false"
    name: vmruntime
  [...]

Wenn diese Annotation auf false gesetzt ist, versucht die Anthos-VM-Laufzeit, laufende VMs zu schützen. Löschen Sie alle ausgeführten VMs, bevor die Anthos-VM-Laufzeit deaktiviert wird, oder geben Sie den Parameter --force=true mit dem Befehl bmctl disable vmruntime an, wie im vorherigen Abschnitt gezeigt.

In der folgenden Tabelle wird erläutert, was mit aktiven VMs geschieht, wenn diese Annotation auf true oder false gesetzt ist und wenn Sie den Parameter --force=true angeben oder nicht:

Cluster Status --force parameter vmrumtime-force-disable Annotation Verhalten
Keine VMs Anthos-VM-Laufzeit deaktivieren.
Vorhandene VMs Ja Wahr Alle laufenden VMs und die zugehörigen Ressourcen löschen. Anthos-VM-Laufzeit deaktivieren.
Ja Falsch Alle laufenden VMs und die zugehörigen Ressourcen löschen. Anthos-VM-Laufzeit deaktivieren.
Nein Ja Aufforderung zum Löschen laufender VMs und zugehöriger Ressourcen. Wenn alle laufenden VMs gelöscht wurden, deaktivieren Sie die Anthos-VM-Laufzeit.
Nein Falsch Keine vorhandenen laufenden VMs löschen. Anthos-VM-Laufzeit nicht deaktivieren. Der bmctl-Befehl gibt einen Fehler zurück.

Nächste Schritte