Dieses Dokument richtet sich an Anwendungsinhaber, die Anthos VM Runtime verwenden, um virtuelle Maschinen (VMs) in Anthos-Clustern auf Bare Metal auszuführen. In diesem Dokument erfahren Sie, wie Sie VMs bearbeiten, die in Anthos-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. Ab Anthos-Clustern auf Bare-Metal-Version 1.13.0 können Sie die VirtualMachine
-Ressource jedoch so konfigurieren, dass sie 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 die 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.
Hinweis
Um dieses Dokument abzuschließen, benötigen Sie Zugriff auf die folgenden Ressourcen:
- Eine VM, die in einem Ihrer Cluster ausgeführt wird. Erstellen Sie bei Bedarf eine VM in Anthos-Cluster auf Bare Metal.
- Das
virtctl
-Clienttool, das als Plug-in fürkubectl
installiert wurde. Installieren Sie bei Bedarf das virtctl-Clienttool.
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:
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.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.Aktualisieren Sie in Ihrem Editor die Werte der Computing-Ressource, die Sie ändern möchten.
Das folgende
VirtualMachine
-Beispielmanifest zeigt etwa, dass der VM-Ressource2
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 ...
Speichern und schließen Sie das VM-Manifest.
Starten Sie die bearbeitete VM:
kubectl virt start VM_NAME
Ersetzen Sie
VM_NAME
durch den Namen der bearbeiteten VM.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 StatusRunning
hat, prüfen Sie das RessourcenmanifestVirtualMachine
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
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:
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.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.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.Speichern und schließen Sie das VM-Manifest.
Starten Sie die bearbeitete VM:
kubectl virt start VM_NAME
Ersetzen Sie
VM_NAME
durch den Namen der bearbeiteten VM.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 eineStorageClass
oder Laufwerkszuweisung anfordert, die der Host nicht bereitstellen kann, kann die VM nicht gestartet werden. Wenn die VM nicht den ZustandRunning
hat, prüfen Sie die RessourcenmanifesteVirtualMachine
undVirtualMachineDisk
sowie die Unterstützung für den Hostspeicher.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:
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.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.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 Namenbackend-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 AbschnittipAddresses
hinzu und geben Sie dieIP_ADDRESS
an, die Ihre VM verwenden soll.Speichern und schließen Sie das VM-Manifest.
Starten Sie die bearbeitete VM:
kubectl virt start VM_NAME
Ersetzen Sie
VM_NAME
durch den Namen der bearbeiteten VM.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 StatusRunning
hat, prüfen Sie das RessourcenmanifestVirtualMachine
und die Unterstützung für das Hostnetzwerk.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. Änderungen an den Einstellungen von compute
, muss die VM angehalten und neu gestartet werden, damit die Änderungen mit der entsprechenden VM-Instanz (VirtualMachineInstance
) synchronisiert werden. VMs, die in Anthos-Clustern auf Bare-Metal-Version 1.13.0 oder höher ausgeführt werden, können so konfiguriert werden, dass sie automatisch neu gestartet werden, wenn Sie Änderungen an der Konfiguration vornehmen. Wenn Sie eine VM für dieses Feature konfigurieren, müssen Sie eine VM nicht beenden und neu starten, wenn Sie ihre benutzerdefinierte Ressource bearbeiten. Die Anthos-VM-Laufzeit überwacht die VM. Wenn eine Konfigurationsänderung erkannt wird, wird die VM automatisch neu gestartet, um die Änderungen zu synchronisieren.
Diese Funktion ist besonders nützlich, wenn Sie Ihre YAML-Konfigurationsdateien mit Anthos Config Management verwalten. Ohne dieses Feature müssen Sie die VM manuell beenden, bevor Sie Änderungen an der benutzerdefinierten VirtualMachine
-Ressource vornehmen und die VM nach Abschluss der Änderungen manuell starten.
So aktivieren Sie automatische Neustarts:
Verwenden Sie
kubectl
zum Bearbeiten der VM:kubectl edit gvm VM_NAME
Fügen Sie im Editor das Feld
autoRestartOnConfigurationChange
hinzu und setzen Sie es auftrue
.Sie können zusätzliche Änderungen an Ihrer VM vornehmen, z. B. den Wert
vcpus
aktualisieren. Wenn Sie die Einstellungen voncompute
bearbeiten, startet die Anthos-VM-Laufzeit 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 ...
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 die Anthos-VM-Laufzeit die VM neu. Wenn Sie die Änderung nur vorgenommen haben, um automatische Neustarts zu aktivieren, ist kein VM-Neustart erforderlich.
Prüfen Sie den
status
Ihrer VM:kubectl get gvm VM_NAME
Je nachdem, wie schnell Sie die VM abrufen, wird beim Neustart der VM möglicherweise
state: Starting
angezeigt. Wenn die VM neu gestartet wurde, wirdstate: Running
angezeigt. Bei nachfolgenden Konfigurationsänderungen an der benutzerdefiniertenVirtualMachine
-Ressource müssen Sie die VM nicht manuell beenden und starten. Nachfolgende Änderungen an der benutzerdefinierten Ressource werden in der VM-Instanz konsistent widergespiegelt.
Beachten Sie das folgende Situationsverhalten:
Wenn Sie eine VM manuell beenden, bevor Sie die benutzerdefinierte Ressource
VirtualMachine
bearbeiten, löst die Konfigurationsänderung keinen Neustart aus. Der beendete Status der VM, bevor die Konfigurationsänderung beibehalten wird.Wenn Sie vor dem Aktivieren des automatischen Neustarts Label- oder Zeitplanänderungen für die VM vorgenommen haben, wird durch das Hinzufügen von
autoRestartOnConfigurationChange
ohne weitere Änderung kein Neustart ausgelöst. Im Idealfall sorgt dieses Feature dafür, dass die VM-Instanz mit der VM-Konfiguration konsistent ist. Die Anthos-VM-Laufzeit kann jedoch keine früheren Inkonsistenzen erkennen.
Nächste Schritte
- VMs mit spezifischen vCPU- und Arbeitsspeicher-Computing-Konfigurationen in Anthos-Clustern auf Bare Metal erstellen
- Laufwerke in Anthos-Clustern auf Bare-Metal erstellen und verwalten.
Virtuelle Netzwerke in Anthos-Clustern auf Bare-Metal erstellen und verwalten