Crear y usar clases de almacenamiento en VM Runtime en GDC

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

Antes de empezar

Para completar este documento, necesitas acceso a un clúster de Google Distributed Cloud versión 1.12.0 (anthosBareMetalVersion: 1.12.0) o posterior. Puedes usar cualquier tipo de clúster que pueda 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.

Información general sobre las clases de almacenamiento

Utiliza un StorageClass para definir el tipo de almacenamiento que pones a disposición de las máquinas virtuales. Las diferentes clases de almacenamiento pueden corresponder a un tipo de hardware de almacenamiento, sistema de archivos o rendimiento diferente. Puedes crear y usar clases de almacenamiento para admitir tus cargas de trabajo de computación en VM Runtime en GDC. Para obtener más información, consulta el artículo Clases de almacenamiento.

Se puede definir un StorageClass predeterminado en el recurso personalizado de VM Runtime en GDC. Si no defines una clase específica al crear un VirtualMachineDisks,, se usará este StorageClass predeterminado. No se ha configurado ningún valor inicial de StorageClass y no se ha definido como predeterminado. En la siguiente sección, aprenderá a definir o actualizar este StorageClass predeterminado.

Definir o actualizar la clase de almacenamiento predeterminada

Inicialmente, Google Distributed Cloud con VM Runtime en GDC no tiene ningún StorageClass configurado de forma predeterminada. Para crear un VirtualMachineDisk sin especificar un StorageClass, primero debes crear un StorageClass y, a continuación, definirlo como predeterminado.

Si quieres definir o actualizar inicialmente el StorageClass que VM Runtime usa en GDC al crear un VirtualMachineDisk, actualiza el recurso personalizado VMRuntime.

  1. Edita el recurso personalizado VMRuntime:

    kubectl edit vmruntime
    
  2. Añade o actualiza la sección spec.storage que especifica el valor predeterminado StorageClass que se va a usar:

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

    Edita STORAGE_CLASS_NAME con el nombre del valor predeterminado StorageClass que quieras usar. Si primero tienes que crear un StorageClass, consulta Crear un StorageClass.

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

    Ahora se usa el StorageClass que has especificado cuando creas un disco de máquina virtual y no especificas ningún StorageClass. En la siguiente sección se muestra cómo crear un disco y usar un StorageClass específico.

    Los recursos VirtualMachineDisk no se actualizan para usar el StorageClass recién especificado.

Usar un StorageClass específico

Si no quieres usar el valor predeterminado StorageClass al crear un VirtualMachineDisk, usa el campo storageClassName para especificar otro StorageClass.

Para usar un StorageClass específico que ya se haya definido al crear un VirtualMachineDisk, sigue estos pasos:

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

    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
    

    Sustituye los siguientes valores:

    • DISK_NAME: el nombre del disco.
    • STORAGE_CLASS_NAME: el StorageClass que se va a usar en tu disco. Este StorageClass ya debe existir. Si primero tienes que crear un StorageClass, consulta Crear un StorageClass.
  3. Guarda y cierra el manifiesto del disco en tu editor.

  4. Crea el disco con kubectl:

    kubectl apply -f my-disk.yaml
    

Configurar perfiles de almacenamiento

Los perfiles de almacenamiento ofrecen opciones de configuración adicionales asociadas a cada StorageClass. Entre estas opciones de configuración se incluyen el modo de acceso y el modo de volumen que se deben usar en VirtualMachineDisks que usen el StorageClass.

Si no se configura ningún perfil de almacenamiento, los discos se asignan de forma predeterminada al modo de acceso ReadWriteOnce. Este modo de acceso no es suficiente para las cargas de trabajo de producción, ya que no funcionan funciones como la migración en directo. El modo de volumen predeterminado sin un perfil de almacenamiento configurado es Filesystem.

VM Runtime en GDC genera automáticamente un perfil de almacenamiento para cada StorageClass de un clúster. El perfil de almacenamiento tiene el mismo nombre que el StorageClass asociado. En el siguiente ejemplo de salida se 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 modo de volumen, sigue estos pasos:

  1. Edita el recurso personalizado StorageProfile:

    kubectl edit storageprofile STORAGE_PROFILE_NAME
    

    Sustituye STORAGE_PROFILE_NAME por el StorageProfile que quieras editar.

  2. Añadir 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
    

    accessMode y volumeMode usan los componentes subyacentes de Kubernetes. Los valores que definas dependerán del controlador de almacenamiento que utilices. Sustituye los siguientes valores según el almacenamiento que utilices:

    • ACCESS_MODE: el modo de acceso que quieras usar. Si la StorageClass asociada lo admite, el modo de acceso preferido es ReadWriteMany.
      • Los valores aceptables son ReadWriteOnce, ReadOnlyMany, ReadWriteMany y ReadWriteOncePod. Si no se especifica, se usa ReadWriteOnce en función de los valores predeterminados de VM Runtime en GDC. Para obtener más información, consulta Modos de acceso.
    • VOLUME_MODE: el modo de volumen que quieras usar.
      • Los valores aceptados son Filesystem y Block. Si no se especifica ningún valor, se utiliza Filesystem de forma predeterminada según los valores predeterminados de Kubernetes. Para obtener más información, consulta Modos de volumen.
    subyacente.
  3. Guarda y cierra el recurso personalizado StorageProfile en el editor.

    La configuración del perfil de almacenamiento que hayas definido se usará cuando crees discos virtuales. Los recursos VirtualMachineDisk no se actualizan para usar la configuración del perfil de almacenamiento definido.

Siguientes pasos