VM-Konfiguration in VM Runtime on GDC bearbeiten

Dieses Dokument richtet sich an Anwendungsinhaber, die VM Runtime in GDC verwenden, um virtuelle Maschinen (VMs) in Google Distributed Cloud auszuführen. In diesem Dokument erfahren Sie, wie Sie VMs bearbeiten, die in Google Distributed Cloud-Clustern ausgeführt werden. Sie können beispielsweise die Ressourcenzuweisung wie CPU und Arbeitsspeicher bearbeiten oder das Netzwerk ändern, zu dem eine VM eine Verbindung herstellt.

Sie können jedes Feld im Abschnitt spec einer Ressource VirtualMachine ändern. Außerdem können Sie die Labels für eine VM bearbeiten. Andere Felder wie der VM-Name (metadata.name) können nicht bearbeitet werden. Standardmäßig muss die VM den Status Stopped haben, bevor Sie die Ressource bearbeiten. Beginnend mit Google Distributed Cloud Version 1.13.0 können Sie Ihre VirtualMachine- Ressource so konfigurieren, dass sie jedes Mal automatisch neu gestartet wird, wenn Sie die Konfiguration ändern.

Wenn Ihre Änderungen an der Ressource VirtualMachine beim Speichern Fehler enthalten, werden die Änderungen abgelehnt und Sie erhalten eine Benachrichtigung. Korrigieren Sie die Fehler und versuchen Sie noch einmal, die Ressource VirtualMachine zu speichern. Wenn Ihre VM nicht gestartet wird, nachdem Sie Änderungen vorgenommen haben, verwenden Sie den Befehl kubectl describe gvm VM_NAME, um Informationen zur Fehlerbehebung aufzurufen und die Fehler zu korrigieren.

Hinweise

Um dieses Dokument abzuschließen, benötigen Sie Zugriff auf die folgenden Ressourcen:

Computing-Ressourcen bearbeiten

Wenn sich die Anforderungen an die Rechenarbeitslast ändern, können Sie die Anzahl der virtuellen CPUs und die Menge des virtuellen Speichers aktualisieren, die Sie Ihren VMs zuweisen. Führen Sie die folgenden Schritte aus, um Ihre Rechenarbeitslasten zu bearbeiten:

  1. Beenden Sie die VM, die Sie bearbeiten möchten:

    kubectl virt stop VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der VM, die Sie stoppen möchten.

  2. Verwenden Sie kubectl zum Bearbeiten der VM:

    kubectl edit gvm VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der VM, die Sie bearbeiten möchten.

  3. Aktualisieren Sie in Ihrem Editor die Werte der Computing-Ressource, die Sie ändern möchten.

    Das folgende VirtualMachine-Beispielmanifest zeigt etwa, dass der VM-Ressource 2 vCPUs zugewiesen sind:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      compute:
        cpu:
          vcpus: 2
    ...
    

    Wenn Sie die Anzahl der zugewiesenen vCPUs aktualisieren möchten, ändern Sie den Wert in Ihrem Editor, wie im folgenden Beispiel gezeigt:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      compute:
        cpu:
          vcpus: 4
    ...
    
  4. Speichern und schließen Sie das VM-Manifest.

  5. Starten Sie die bearbeitete VM:

    kubectl virt start VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der bearbeiteten VM.

  6. Prüfen Sie den STATUS Ihrer VM:

    kubectl get gvm VM_NAME
    

    Achten Sie darauf, dass die VM den Status Running hat. Wenn die VM mehr Rechenressourcen anfordert, als der Host bereitstellen kann, kann die VM nicht gestartet werden. Wenn die VM nicht den Status Running hat, prüfen Sie das Ressourcenmanifest VirtualMachine und die Verfügbarkeit der Compute-Ressource auf dem Host.

    Das folgende Ausgabebeispiel zeigt die VM im Status Running:

    NAME   STATUS    AGE   IP
    vm1    Running   1m    192.168.2.72
    
  7. Mit kubectl describe gvm erhalten Sie detaillierte Informationen zu einer VM:

    kubectl describe gvm VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der bearbeiteten VM.

    Die folgende Beispielausgabe zeigt die zusammengefassten Informationen für eine VM mit einer erfolgreich angewendeten Änderung bei der Anzahl der vCPUs:

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Compute:
        Cpu:
          Vcpus:  4
    ...
    

Weitere Informationen finden Sie unter VMs mit bestimmten vCPU- und Arbeitsspeicher-Computing-Konfigurationen erstellen.

Laufwerkressourcen bearbeiten

Wenn sich Ihre Speicheranforderungen ändern, können Sie virtuelle Laufwerke zu einer VM hinzufügen oder entfernen. Führen Sie die folgenden Schritte aus, um die an Ihre VM angehängten Laufwerke zu bearbeiten:

  1. Beenden Sie die VM, die Sie bearbeiten möchten:

    kubectl virt stop VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der VM, die Sie stoppen möchten.

  2. Verwenden Sie kubectl zum Bearbeiten der VM:

    kubectl edit gvm VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der VM, die Sie bearbeiten möchten.

  3. Aktualisieren Sie in Ihrem Editor den Abschnitt spec.disks, um Laufwerke anzuhängen oder abzutrennen.

    Das folgende VirtualMachine.Beispielmanifest zeigt etwa, dass nur ein Bootlaufwerk an die VM angehängt ist:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      disks:
        - boot: true
          virtualMachineDiskName: vm1-boot-dv
      ...
    

    Wenn Sie ein vorhandenes leeres Laufwerk hinzufügen möchten, aktualisieren Sie die Laufwerkskonfiguration in Ihrem Editor wie im folgenden Beispiel gezeigt:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      disks:
        - boot: true
          virtualMachineDiskName: vm1-boot-dv
        - virtualMachineDiskName: DISK_NAME
      ...
    

    Ersetzen Sie DISK_NAME durch den Namen des Laufwerks, das angehängt werden soll.

  4. Speichern und schließen Sie das VM-Manifest.

  5. Starten Sie die bearbeitete VM:

    kubectl virt start VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der bearbeiteten VM.

  6. Prüfen Sie den STATUS Ihrer VM:

    kubectl get gvm VM_NAME
    

    Achten Sie darauf, dass die VM den Status Running hat. Wenn die VM eine StorageClass oder Laufwerkszuweisung anfordert, die der Host nicht bereitstellen kann, kann die VM nicht gestartet werden. Wenn die VM nicht den Zustand Running hat, prüfen Sie die Ressourcenmanifeste VirtualMachine und VirtualMachineDisk sowie die Unterstützung für den Hostspeicher.

  7. Mit kubectl describe gvm erhalten Sie detaillierte Informationen zu einer VM:

    kubectl describe gvm VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der bearbeiteten VM.

    Die folgende Beispielausgabe zeigt die zusammengefassten Informationen für eine VM, mit einer erfolgreich angewendeten Änderung bei den angehängten Laufwerken:

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Disks:
        Name:  vm1-boot-dv
        Name:  data-disk-01
    ...
    

Weitere Informationen finden Sie unter Laufwerke erstellen und verwalten.

Netzwerkressourcen bearbeiten

Wenn sich Ihre Infrastruktur ändert, möchten Sie möglicherweise die Netzwerkkonfiguration für eine VM ändern. Sie können die VM beispielsweise mit einem anderen virtuellen Netzwerk verbinden oder eine IP-Adresse manuell zuweisen. Führen Sie die folgenden Schritte aus, um die Netzwerkkonfiguration für eine VM zu bearbeiten:

  1. Beenden Sie die VM, die Sie bearbeiten möchten:

    kubectl virt stop VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der VM, die Sie stoppen möchten.

  2. Verwenden Sie kubectl zum Bearbeiten der VM:

    kubectl edit gvm VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der VM, die Sie bearbeiten möchten.

  3. Aktualisieren Sie in Ihrem Editor die Einstellungen für die Netzwerkkonfiguration, die Sie ändern möchten.

    Das folgende VirtualMachine-Beispielmanifest zeigt etwa, dass die VM eine Verbindung zu einem Netzwerk mit dem Namen backend-vlan100 herstellt und DHCP verwendet, da keine IP-Adresse definiert ist:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      interfaces:
        - name: eth0
          networkName: backend-vlan100
          default: true
    ...
    

    Wenn Sie das Netzwerk ändern möchten, zu dem die VM eine Verbindung herstellt, oder eine manuelle IP-Adresse zuweisen möchten, aktualisieren Sie die Netzwerkkonfiguration in Ihrem Editor wie im folgenden Beispiel gezeigt:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      interfaces:
        - name: eth0
          networkName: NETWORK_NAME
            ipAddresses:
              - IP_ADDRESS
          default: true
    ...
    

    Ersetzen Sie NETWORK_NAME durch den Namen des Netzwerks, zu dem eine Verbindung hergestellt werden soll, oder fügen Sie den Abschnitt ipAddresses hinzu und geben Sie die IP_ADDRESS an, die Ihre VM verwenden soll.

  4. Speichern und schließen Sie das VM-Manifest.

  5. Starten Sie die bearbeitete VM:

    kubectl virt start VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der bearbeiteten VM.

  6. Prüfen Sie den STATUS Ihrer VM:

    kubectl get gvm VM_NAME
    

    Achten Sie darauf, dass die VM den Status Running hat. Wenn die VM eine Netzwerkverbindung anfordert, die der Host nicht bereitstellen kann, kann die VM nicht gestartet werden. Wenn die VM nicht den Status Running hat, prüfen Sie das Ressourcenmanifest VirtualMachine und die Unterstützung für das Hostnetzwerk.

  7. Mit kubectl describe gvm erhalten Sie detaillierte Informationen zu einer VM:

    kubectl describe gvm VM_NAME
    

    Ersetzen Sie VM_NAME durch den Namen der bearbeiteten VM.

    Die folgende Beispielausgabe zeigt die zusammengefassten Informationen für eine VM, mit einer erfolgreich angewendeten Änderung bei der Netzwerk- und IP-Adresskonfiguration:

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Compute:
      Interfaces:
        Name:          eth0
        Network Name:  backend-vlan200
    ...
    Status:
      ...
      Interfaces:
        Dns Config:
          Nameservers:
            8.8.8.8
        gateway4:  10.200.0.9
        Ip Addresses:
          10.200.0.22/24
        Mac Address:    22:b4:e3:d2:ef:fb
        Name:           eth0
        Resource Name:  vm1-eth0-f2468
    ...
    

Weitere Informationen finden Sie unter Virtuelle Netzwerke erstellen und verwalten.

VM für automatische Neustarts konfigurieren

Bei vielen Änderungen der VM-Konfiguration, z. B. an den compute-Einstellungen, muss die VM beendet und neu gestartet werden, damit die Änderungen durch die entsprechende VM-Instanz (VirtualMachineInstance) synchronisiert werden. VMs, die in Google Distributed Cloud Version 1.13.0 oder höher ausgeführt werden, können für einen Neustart automatisch konfiguriert werden, wenn Sie Änderungen an ihrer Konfiguration vornehmen. Wenn Sie eine VM für die Verwendung dieses Features konfigurieren, müssen Sie eine VM nicht beenden und neu starten, wenn Sie die benutzerdefinierte Ressource bearbeiten. VM-Laufzeit in GDC überwacht die VM. Wenn eine Konfigurationsänderung erkannt wird, wird die VM automatisch neu gestartet, um die Änderungen zu synchronisieren.

Wenn Sie Ihre YAML-Konfigurationsdateien mit Config Sync verwalten, ist dieses Feature besonders nützlich. Ohne dieses Feature müssen Sie die VM manuell anhalten, bevor Sie Änderungen an der benutzerdefinierten VirtualMachine-Ressource vornehmen. Starten Sie die VM manuell, nachdem Sie die Änderungen vorgenommen haben.

So aktivieren Sie automatische Neustarts:

  1. Verwenden Sie kubectl zum Bearbeiten der VM:

    kubectl edit gvm VM_NAME
    
  2. Fügen Sie im Editor das Feld autoRestartOnConfigurationChange hinzu und legen Sie es auf true fest.

    Sie können weitere Änderungen an der VM vornehmen, z. B. den vcpus-Wert aktualisieren. Wenn Sie die Einstellungen für compute bearbeiten, startet VM Runtime on GDC ihre VM automatisch neu, wenn Sie Ihre Änderungen speichern.

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      ...
      name: vm-sample-01
      namespace: default
      resourceVersion: "16711824"
      uid: ed623879-0cfa-52de-ad2c-b63308e6116c
    spec:
      autoRestartOnConfigurationChange: true
      compute:
        cpu:
          vcpus: 2
          ...
    
  3. Speichern und schließen Sie das VM-Manifest.

    Wenn Sie andere Änderungen an der VM vorgenommen haben, die mit der entsprechenden VM-Instanz synchronisiert werden müssen, startet VM Runtime on GDC die VM neu. Wenn Sie nur die Änderung vorgenommen haben, um automatische Neustarts zu aktivieren, ist kein Neustart der VM erforderlich.

  4. Prüfen Sie den status Ihrer VM:

    kubectl get gvm VM_NAME
    

    Abhängig davon, wie schnell Sie die VM erhalten, wird möglicherweise state: Starting angezeigt, wenn die VM neu gestartet wird. Wenn die VM erfolgreich neu gestartet wurde, wird state: Running angezeigt. Bei nachfolgenden Konfigurationsänderungen an der benutzerdefinierten Ressource VirtualMachine müssen Sie die VM nicht manuell beenden und starten. Nachfolgende Änderungen an der benutzerdefinierten Ressource werden konsistent in der VM-Instanz angezeigt.

Achten Sie auf das folgende Situationsverhalten:

  • Wenn Sie eine VM manuell beenden, bevor Sie die benutzerdefinierte VirtualMachine-Ressource bearbeiten, löst die Konfigurationsänderung keinen Neustart aus. Der angehaltene Zustand der VM, bevor die Konfigurationsänderung beibehalten wird.

  • Wenn Sie vor dem Aktivieren der Funktion Label- oder Planungsänderungen für die VM vorgenommen haben, bevor Sie das Feature für automatischen Neustart aktiviert haben, wirdautoRestartOnConfigurationChange ohne weitere Änderung jetzt keinen Neustart auslösen. Im Idealfall sorgt dieses Feature dafür, dass die VM-Instanz mit der VM-Konfiguration konsistent bleibt. Die VM-Laufzeit in GDC kann jedoch keine vorherigen Inkonsistenzen erkennen.

Nächste Schritte