Virtuelle Laufwerke in Anthos-Clustern auf Bare-Metal erstellen und verwalten

Dieses Dokument richtet sich an Anwendungsinhaber, die Anthos-Cluster auf Bare Metal ausführen. In diesem Dokument erfahren Sie, wie Sie Laufwerkressourcen für virtuelle Maschinen (VMs) erstellen und verwalten, die die Anthos-VM-Laufzeit verwenden.

Hinweis

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

VM mit einem angehängten Laufwerk erstellen

Sie können beim Erstellen einer VM ein vorhandenes Start- oder Datenlaufwerk hinzufügen, ein Laufwerk aus einem Image erstellen (einschließlich des Bootlaufwerks) oder ein leeres Laufwerk erstellen.

Leeres Laufwerk

In diesem Szenario erstellen Sie ein leeres Laufwerk und hängen es an die VM an. In diesem Szenario können Sie ein Datenlaufwerk zum Speichern von Anwendungsdaten erstellen.

  1. Erstellen Sie ein Manifest, das eine VirtualMachineDisk und VirtualMachine definiert, z. B. my-vm.yaml, in dem Editor Ihrer Wahl:

    nano my-vm.yaml
    
  2. Kopieren Sie die folgende YAML-Definition und fügen Sie sie ein:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 10Gi
    ---
    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - boot: true
          virtualMachineDiskName: VM_NAME-boot-dv
        - virtualMachineDiskName: DISK_NAME
    

    In diesem Beispiel wird ein leeres Laufwerk 10Gi (10 Gibibyte) mit dem Namen DISK_NAME erstellt. Im Abschnitt spec.disks der VM müssen Sie auch ein Bootlaufwerk anhängen, z. B. von einem Image, wie im nächsten Abschnitt gezeigt.

  3. Speichern und schließen Sie die Manifestdatei in Ihrem Editor.

  4. Erstellen Sie die VM und das Laufwerk mit kubectl:

    kubectl apply -f my-vm.yaml
    

Image

In diesem Szenario erstellen Sie ein Laufwerk aus einem Image und hängen es an die VM an. In diesem Szenario können Sie ein Bootlaufwerk erstellen, z. B. aus einem Image. Sie können auch Datenlaufwerke aus einem Image erstellen und anhängen.

  1. Erstellen Sie ein Manifest, das eine VirtualMachineDisk und VirtualMachine definiert, z. B. my-vm.yaml, in dem Editor Ihrer Wahl:

    nano my-vm.yaml
    
  2. Kopieren Sie die folgende YAML-Definition und fügen Sie sie ein:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_NAME-boot-dv
    spec:
      size: 20Gi
      source:
        http:
          url: https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img
    ---
    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - boot: true
          virtualMachineDiskName: VM_NAME-boot-dv
    

    In diesem Beispiel wird ein 20Gi-Laufwerk (20 Gibibyte) mit dem Namen VM_NAME-boot-dv mithilfe eines öffentlichen Ubuntu-Images erstellt. Im Abschnitt spec.disks der VM wird das Laufwerk auf boot: true gesetzt.

  3. Speichern und schließen Sie das Manifest in Ihrem Editor.

  4. Erstellen Sie die VM und das Laufwerk mit kubectl:

    kubectl apply -f my-vm.yaml
    

Vorhandenes Laufwerk

In diesem Szenario erstellen Sie ein leeres Laufwerk und hängen es an die VM an. In diesem Szenario können Sie ein Datenlaufwerk zum Speichern von Anwendungsdaten erstellen.

  1. Erstellen Sie in einem Editor Ihrer Wahl ein VirtualMachine-Manifest wie my-vm.yaml:

    nano my-vm.yaml
    
  2. Kopieren Sie die folgende YAML-Definition und fügen Sie sie ein:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - boot: true
          virtualMachineDiskName: VM_NAME-boot-dv
        - virtualMachineDiskName: EXISTING_DISK_NAME
    

    In diesem Beispiel wird ein vorhandenes Laufwerk mit dem Namen EXISTING_DISK_NAME angehängt.

    Im Abschnitt spec.disks der VM müssen Sie auch ein Bootlaufwerk anhängen, z. B. von einem Image, wie im vorherigen Abschnitt gezeigt.

  3. Speichern und schließen Sie das VM-Manifest in Ihrem Editor.

  4. Erstellen Sie die VM mit kubectl:

    kubectl apply -f my-vm.yaml
    

Laufwerke erstellen und an vorhandene VM anhängen

Wenn Sie bereits eine VM haben, können Sie Laufwerke erstellen und anhängen, um die Anwendungslebenszyklen zu unterstützen. Die VM muss deaktiviert sein, bevor Sie ein Laufwerk anhängen.

Leeres Laufwerk

In diesem Szenario erstellen Sie ein leeres Laufwerk und hängen es an die VM an. In diesem Szenario können Sie ein Datenlaufwerk zum Speichern von Anwendungsdaten erstellen.

  1. Verwenden Sie kubectl, um die VM bei Bedarf zu beenden:

    kubectl virt stop vm VM_NAME
    

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

  2. Bearbeiten Sie Ihre vorhandene VM-Ressource, z. B. my-vm:

    kubectl edit gvm VM_NAME
    
  3. Aktualisieren Sie das YAML-Manifest VirtualMachine, um oben einen Abschnitt VirtualMachineDisk hinzuzufügen, und hängen Sie dann das Laufwerk am Ende des Abschnitts spec.disks der VM an:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 10Gi
    ---
    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - boot: true
          virtualMachineDiskName: VM_NAME-boot-dv
        - virtualMachineDiskName: DISK_NAME
    

    In diesem Beispiel wird ein leeres Laufwerk 10Gi (10 Gibibyte) mit dem Namen DISK_NAME erstellt.

  4. Speichern und schließen Sie das aktualisierte VM-Manifest in Ihrem Editor.

  5. Starten Sie die VM mit kubectl:

    kubectl virt start vm VM_NAME
    

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

Image

In diesem Szenario erstellen Sie ein Laufwerk aus einem Quell-Image und hängen es an die VM an.

  1. Verwenden Sie kubectl, um die VM bei Bedarf zu beenden:

    kubectl virt stop vm VM_NAME
    

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

  2. Bearbeiten Sie Ihre vorhandene VM-Ressource, z. B. my-vm:

    kubectl edit gvm VM_NAME
    
  3. Aktualisieren Sie das VirtualMachine-Manifest, um oben einen Abschnitt VirtualMachineDisk hinzuzufügen. Hängen Sie dann das Laufwerk am Ende des Abschnitts spec.disks der VM an:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 10Gi
      source:
        http:
          url: http://example.com/my-disk-img.qcow2
    ---
    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      interfaces:
        - name: eth0
          networkName: pod-network
          default: true
      disks:
        - boot: true
          virtualMachineDiskName: VM_NAME-boot-dv
        - virtualMachineDiskName: DISK_NAME
    

    In diesem Beispiel wird aus der HTTP-Quelle http://example.com/my-disk-img.qcow2 das Laufwerk 10Gi (10 Gibibyte) mit dem Namen DISK_NAME erstellt.

  4. Speichern und schließen Sie das aktualisierte VM-Manifest in Ihrem Editor.

  5. Starten Sie die VM mit kubectl:

    kubectl virt start vm VM_NAME
    

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

Laufwerk erstellen

In diesem Szenario erstellen Sie die Laufwerkressourcen getrennt von den VM-Ressourcen. In diesem Szenario können Sie Laufwerke im Voraus erstellen und dann nach Bedarf an VMs anhängen.

Leeres Laufwerk

Führen Sie die folgenden Schritte aus, um ein leeres Laufwerk zu erstellen.

  1. Erstellen Sie in einem Editor Ihrer Wahl ein VirtualMachineDisk-Manifest wie z. B. my-disk.yaml:

    nano my-disk.yaml
    
  2. Kopieren Sie die folgende YAML-Definition und fügen Sie sie ein:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 10Gi
    

    In diesem Beispiel wird ein leeres Laufwerk 10Gi (10 Gibibyte) mit dem Namen DISK_NAME erstellt.

  3. Speichern und schließen Sie das Laufwerkmanifest in Ihrem Editor.

  4. Erstellen Sie das Laufwerk mit kubectl:

    kubectl apply -f my-disk.yaml
    

Image

Führen Sie die folgenden Schritte aus, um ein Laufwerk aus einem Image zu erstellen.

  1. Erstellen Sie in einem Editor Ihrer Wahl ein VirtualMachineDisk-Manifest wie z. B. my-disk.yaml:

    nano my-disk.yaml
    
  2. Kopieren Sie die folgende YAML-Definition und fügen Sie sie ein:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineDisk
    metadata:
      name: DISK_NAME
    spec:
      size: 20Gi
      source:
        http:
          url: https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img
    

    In diesem Beispiel wird ein 20Gi-Laufwerk (20 Gibibyte) mit dem Namen DISK_NAME mit einem öffentlichen Ubuntu-Image erstellt.

  3. Speichern und schließen Sie das Laufwerkmanifest in Ihrem Editor.

  4. Erstellen Sie das Laufwerk mit kubectl:

    kubectl apply -f my-disk.yaml
    

Nächste Schritte