Crea y usa clases de almacenamiento en el entorno de ejecución de VM en GDC

Este documento está dirigido a los propietarios de aplicaciones y administradores de plataformas que ejecutan Google Distributed Cloud. En este documento, se muestra cómo crear y usar clases de almacenamiento para VM que usan VM Runtime en GDC. Un StorageClass te permite definir distintas configuraciones de almacenamiento para satisfacer las diversas necesidades de tus VM.

Antes de comenzar

Para completar este documento, necesitas acceso al clúster de Google Distributed Cloud 1.12.0 (anthosBareMetalVersion: 1.12.0) o una versión posterior. Puedes usar cualquier tipo de clúster capaz de ejecutar cargas de trabajo. Si es necesario, prueba Google Distributed Cloud en Compute Engine o consulta la descripción general de la creación de clústeres.

Descripción general de las clases de almacenamiento

Usa una StorageClass a fin de definir el tipo de almacenamiento que estarás disponible para las VM. Las diferentes clases de almacenamiento pueden asignarse a un tipo diferente de hardware de almacenamiento, sistema de archivos o rendimiento. Puedes crear y usar clases de almacenamiento para admitir cargas de trabajo de procesamiento en el entorno de ejecución de VM en GDC. Para obtener más información, consulta Clases de almacenamiento.

Se puede definir un StorageClass predeterminado en el recurso personalizado para el entorno de ejecución de VM en GDC. Si no defines una clase específica cuando creas VirtualMachineDisks,, se usa esta StorageClass predeterminada. No se configuró ni se estableció como predeterminada ninguna StorageClass. En la siguiente sección, aprenderás a configurar o actualizar esta StorageClass predeterminada.

Configura o actualiza la StorageClass predeterminada

Inicialmente, Google Distributed Cloud con VM Runtime en GDC no tiene StorageClass predeterminado configurado. Para crear un VirtualMachineDisk sin especificar un StorageClass, primero debes crear un StorageClass y, luego, establecerlo como predeterminado.

Si deseas establecer o actualizar inicialmente el StorageClass predeterminado que usa el entorno de ejecución de VM en GDC cuando creas un VirtualMachineDisk, actualiza el recurso personalizado VMRuntime.

  1. Edita el recurso personalizado VMRuntime:

    kubectl edit vmruntime
    
  2. Agrega o actualiza la sección spec.storage que especifica la StorageClass predeterminada que se usará:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: true
      storage:
        defaultStorageClass: STORAGE_CLASS_NAME
    ...
    

    Edita STORAGE_CLASS_NAME y asígnale el nombre de la StorageClass predeterminada que deseas usar. Si necesitas crear una StorageClass, consulta Crea una StorageClass.

  3. Guarda y cierra el recurso personalizado VMRuntime en el editor.

    La StorageClass que especificaste se usa cuando creas un disco de máquina virtual y no especificas una StorageClass. En la siguiente sección, se muestra cómo crear un disco y usar una StorageClass específica.

    Los recursos VirtualMachineDisk existentes no se actualizan para usar la StorageClass recién especificada.

Usa una StorageClass específica

Si no deseas usar la StorageClass predeterminada cuando creas un VirtualMachineDisk, usa el campo storageClassName para especificar una StorageClass diferente.

Para usar una StorageClass específica ya definida, cuando creas un VirtualMachineDisk, completa los siguientes pasos:

  1. Crea un manifiesto VirtualMachineDisk, como my-disk.yaml, en el editor que elijas:

    nano my-disk.yaml
    
  2. Copia y pega el siguiente manifiesto YAML:

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

    Reemplaza los siguientes valores:

    • DISK_NAME: el nombre de tu disco.
    • STORAGE_CLASS_NAME: la StorageClass que se usará para el disco. Esta StorageClass ya debe existir. Si necesitas crear una StorageClass primero, consulta Crea una StorageClass.
  3. Guarda y cierra el manifiesto del disco en el editor.

  4. Crea el disco con kubectl:

    kubectl apply -f my-disk.yaml
    

Configura perfiles de almacenamiento

Los perfiles de almacenamiento proporcionan opciones de configuración adicionales asociadas con cada StorageClass. En estas opciones de configuración, se incluye qué modo de acceso y modo de volumen usar para VirtualMachineDisks que usan la StorageClass.

Sin un perfil de almacenamiento configurado, los discos se establecen de forma predeterminada en el modo de acceso ReadWriteOnce. Este modo de acceso no es suficiente para las cargas de trabajo de producción, ya que las funciones como la migración en vivo no funcionan. El modo de volumen predeterminado sin un perfil de almacenamiento configurado es Filesystem.

El entorno de ejecución de VM en GDC genera de forma automática un perfil de almacenamiento para cada StorageClass en un clúster. El perfil de almacenamiento tiene el mismo nombre que la StorageClass asociada. El siguiente resultado de ejemplo muestra que el clúster tiene cuatro clases de almacenamiento y perfiles asociados:

  $ kubectl get storageprofiles

  NAME            AGE
  anthos-system   11d
  node-disk       11d
  standard        11d
  nfs             11d

Para editar un perfil de almacenamiento y cambiar el modo de acceso o el volumen, completa los siguientes pasos:

  1. Edita el recurso personalizado StorageProfile para modificar lo siguiente:

    kubectl edit storageprofile STORAGE_PROFILE_NAME
    

    Reemplaza STORAGE_PROFILE_NAME por el StorageProfile que deseas editar.

  2. Agrega una sola entrada a la lista spec.claimPropertySets de StorageProfile:

    apiVersion: cdi.kubevirt.io/v1beta1
    kind: StorageProfile
    metadata:
      name: nfs
    spec:
      claimPropertySets:
      - accessModes:
        - ACCESS_MODE
        volumeMode: VOLUME_MODE
    

    El accessMode y el volumeMode usan los componentes subyacentes de Kubernetes. Los valores que estableces dependen del controlador de almacenamiento que usas. Reemplaza los siguientes valores según corresponda para el almacenamiento que usas:

    • ACCESS_MODE: El modo de acceso que deseas usar. Si es compatible con la StorageClass asociada, el modo de acceso preferido es ReadWriteMany.
      • Los valores aceptables incluyen ReadWriteOnce, ReadOnlyMany, ReadWriteMany y ReadWriteOncePod. Si no se especifica, se usa ReadWriteOnce según el entorno de ejecución de la VM en los valores predeterminados de GDC. Para obtener más información, consulta Modos de acceso.
    • VOLUME_MODE: El modo de volumen que deseas usar.
      • Los valores aceptables incluyen Filesystem y Block. Si no se especifica, se usa Filesystem según los valores predeterminados de Kubernetes. Para obtener más información, consulta Modos de volumen.
  3. Guarda y cierra el recurso personalizado StorageProfile en el editor.

    La configuración del perfil de almacenamiento que definiste se usa ahora cuando creas cualquier disco virtual. Los recursos VirtualMachineDisk existentes no se actualizan para usar la configuración definida del perfil de almacenamiento.

¿Qué sigue?