Este documento está dirigido a los propietarios de aplicaciones que ejecutan clústeres de Anthos en equipos físicos. En este documento, se muestra cómo crear y administrar recursos de discos para máquinas virtuales (VM) que usan el entorno de ejecución de VM de Anthos.
Antes de comenzar
Para completar este documento, necesitas acceso a los siguientes recursos:
- Acceso a la versión 1.12.0 (
anthosBareMetalVersion: 1.12.0
) o superior de los clústeres de Anthos alojados en equipos físicos. Puedes usar cualquier tipo de clúster capaz de ejecutar cargas de trabajo. Si es necesario, prueba los clústeres de Anthos alojados en equipos físicos en Compute Engine o consulta la descripción general de la creación de clústeres. - La herramienta de cliente
virtctl
instalada como un complemento parakubectl
. Si es necesario, instala la herramienta cliente de virtctl.
Crea una VM con un disco conectado
Cuando creas una VM, puedes conectar un disco de arranque o de datos existente, crear un disco a partir de una imagen (incluido el disco de arranque) o crear un disco en blanco.
Disco en blanco
En esta situación, debes crear un disco en blanco y conectarlo a la VM. Esta situación te permite crear un disco de datos para almacenar datos de la aplicación.
Crea un manifiesto que defina
VirtualMachineDisk
yVirtualMachine
, como my-vm.yaml, en el editor que elijas:nano my-vm.yaml
Copia y pega la siguiente definición de YAML:
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
En este ejemplo, se crea un disco
10Gi
en blanco (10 gibibyte) llamadoDISK_NAME
. En la secciónspec.disks
de la VM, también debes adjuntar un disco de arranque, como a partir de una imagen tal como se muestra en la siguiente sección.Guarda y cierra el archivo de manifiesto en tu editor.
Crea la VM y el disco con
kubectl
:kubectl apply -f my-vm.yaml
Desde la imagen
En esta situación, crearás un disco a partir de una imagen y lo conectará a la VM. Esta situación te permite crear un disco de arranque, por ejemplo, a partir de una imagen. También puedes crear y adjuntar discos de datos a partir de una imagen.
Crea un manifiesto que defina
VirtualMachineDisk
yVirtualMachine
, como my-vm.yaml, en el editor que elijas:nano my-vm.yaml
Copia y pega la siguiente definición de YAML:
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
En este ejemplo, se crea un disco
20Gi
(20 gibibytes) llamadoVM_NAME-boot-dv
mediante una imagen pública de Ubuntu. En la secciónspec.disks
de la VM, el disco se establece enboot: true
.Guarda y cierra el manifiesto en tu editor.
Crea la VM y el disco con
kubectl
:kubectl apply -f my-vm.yaml
Disco existente
En esta situación, debes crear un disco en blanco y conectarlo a la VM. Esta situación te permite crear un disco de datos para almacenar datos de la aplicación.
Crea un manifiesto
VirtualMachine
, como my-vm.yaml, en el editor que elijas:nano my-vm.yaml
Copia y pega la siguiente definición de YAML:
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
En este ejemplo, se conecta un disco existente llamado
EXISTING_DISK_NAME
.En la sección
spec.disks
de la VM, también debes adjuntar un disco de arranque, como a partir de una imagen tal como se muestra en la sección anterior.Guarda y cierra el manifiesto de la VM en el editor.
Crea la VM mediante
kubectl
:kubectl apply -f my-vm.yaml
Crea y conecta discos a la VM existente
Si tienes una VM existente, puedes crear y adjuntar discos para respaldar los ciclos de vida de las aplicaciones. La VM debe estar detenida antes de conectar un disco.
Disco en blanco
En esta situación, debes crear un disco en blanco y conectarlo a la VM. Esta situación te permite crear un disco de datos para almacenar datos de la aplicación.
Usa
kubectl
para detener la VM, si es necesario:kubectl virt stop vm VM_NAME
Reemplaza
VM_NAME
por el nombre de la VM que deseas detener.Edita el recurso de VM existente, como
my-vm
:kubectl edit gvm VM_NAME
Actualiza el manifiesto YAML
VirtualMachine
para agregar una secciónVirtualMachineDisk
en la parte superior y, luego, conecta el disco al final de la secciónspec.disks
de la VM: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
En este ejemplo, se crea un disco
10Gi
en blanco (10 gibibyte) llamadoDISK_NAME
.Guarda y cierra el manifiesto de VM actualizado en el editor.
Usa
kubectl
para iniciar la VM:kubectl virt start vm VM_NAME
Reemplaza
VM_NAME
por el nombre de la VM que deseas iniciar.
Desde la imagen
En esta situación, debes crear un disco a partir de una imagen de origen y conectarlo a la VM.
Usa
kubectl
para detener la VM, si es necesario:kubectl virt stop vm VM_NAME
Reemplaza
VM_NAME
por el nombre de la VM que deseas detener.Edita el recurso de VM existente, como
my-vm
:kubectl edit gvm VM_NAME
Actualiza el manifiesto
VirtualMachine
para agregar una secciónVirtualMachineDisk
en la parte superior y, luego, conecta el disco al final de la secciónspec.disks
de la VM: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
En este ejemplo, se crea un disco
10Gi
(10 gibibyte) llamadoDISK_NAME
desde la fuente HTTPhttp://example.com/my-disk-img.qcow2
.Guarda y cierra el manifiesto de VM actualizado en el editor.
Usa
kubectl
para iniciar la VM:kubectl virt start vm VM_NAME
Reemplaza
VM_NAME
por el nombre de la VM que deseas iniciar.
Crea un disco
En esta situación, debes crear los recursos de discos por separado de los recursos de la VM. Esta situación te permite crear discos con anticipación y, luego, conectarte a las VM según sea necesario.
Disco en blanco
Para crear un disco en blanco, completa los siguientes pasos.
Crea un manifiesto
VirtualMachineDisk
, como my-disk.yaml, en el editor que elijas:nano my-disk.yaml
Copia y pega la siguiente definición de YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 10Gi
En este ejemplo, se crea un disco
10Gi
en blanco (10 gibibyte) llamadoDISK_NAME
.Guarda y cierra el manifiesto del disco en el editor.
Crea el disco con
kubectl
:kubectl apply -f my-disk.yaml
Desde la imagen
Para crear un disco a partir de una imagen, completa los siguientes pasos.
Crea un manifiesto
VirtualMachineDisk
, como my-disk.yaml, en el editor que elijas:nano my-disk.yaml
Copia y pega la siguiente definición de YAML:
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
En este ejemplo, se crea un disco
20Gi
(20 gibibytes) llamadoDISK_NAME
con una imagen pública de Ubuntu.Guarda y cierra el manifiesto del disco en el editor.
Crea el disco con
kubectl
:kubectl apply -f my-disk.yaml
¿Qué sigue?
- Crea y usa credenciales para importar imágenes desde Cloud Storage.
- Crea y usa clases de almacenamiento en clústeres de Anthos en equipos físicos.
- Cuando ya no necesites las VM ni sus recursos de discos virtuales, borra una VM en clústeres de Anthos alojados en equipos físicos.