Crie e use classes de armazenamento no VM Runtime no GDC

Este documento destina-se a proprietários de aplicações e administradores de plataformas que executam o Google Distributed Cloud. Este documento mostra-lhe como criar e usar classes de armazenamento para VMs que usam o tempo de execução de VMs no GDC. Um StorageClass permite-lhe definir diferentes configurações de armazenamento para satisfazer as várias necessidades das suas VMs.

Antes de começar

Para concluir este documento, precisa de aceder ao cluster da versão 1.12.0 (anthosBareMetalVersion: 1.12.0) ou superior do Google Distributed Cloud. Pode usar qualquer tipo de cluster capaz de executar cargas de trabalho. Se necessário, experimente o Google Distributed Cloud no Compute Engine ou consulte a vista geral da criação de clusters.

Vista geral das classes de armazenamento

Usa um StorageClass para definir o tipo de armazenamento que disponibiliza às VMs. As diferentes classes de armazenamento podem ser mapeadas para um tipo diferente de hardware de armazenamento, sistema de ficheiros ou desempenho. Pode criar e usar classes de armazenamento para suportar as suas cargas de trabalho de computação no VM Runtime no GDC. Para mais informações, consulte Classes de armazenamento.

É possível definir um StorageClass predefinido no recurso personalizado para o tempo de execução da VM no GDC. Se não definir uma classe específica quando criar um VirtualMachineDisks,, é usado este StorageClass predefinido. Nenhuma predefinição StorageClass está configurada nem definida como predefinição. Na secção seguinte, vai saber como definir ou atualizar esta StorageClass predefinida.

Defina ou atualize a StorageClass predefinida

Inicialmente, o Google Distributed Cloud com o VM Runtime no GDC não tem nenhum valor predefinido StorageClass configurado. Para criar um VirtualMachineDisk sem especificar um StorageClass, primeiro tem de criar um StorageClass e, em seguida, defini-lo como predefinição.

Se quiser definir ou atualizar inicialmente o StorageClass que o VM Runtime no GDC usa quando cria um VirtualMachineDisk, atualize o recurso personalizado VMRuntime.

  1. Edite o recurso personalizado VMRuntime:

    kubectl edit vmruntime
    
  2. Adicione ou atualize a secção spec.storage que especifica o valor predefinido StorageClass a usar:

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

    Edite STORAGE_CLASS_NAME com o nome do valor predefinido StorageClass que quer usar. Se precisar de criar primeiro uma StorageClass, consulte Crie uma StorageClass.

  3. Guarde e feche o recurso personalizado VMRuntime no editor.

    O StorageClass especificado é agora usado quando cria um disco de máquina virtual e não especifica um StorageClass. A secção seguinte mostra-lhe como criar um disco e usar uma StorageClass específica.

    Os recursos VirtualMachineDisk existentes não são atualizados para usar o StorageClass especificado recentemente.

Use uma StorageClass específica

Se não quiser usar o valor predefinido StorageClass quando criar um VirtualMachineDisk, use o campo storageClassName para especificar um StorageClass diferente.

Para usar um StorageClass específico já definido quando cria um VirtualMachineDisk, conclua os seguintes passos:

  1. Crie um manifesto VirtualMachineDisk, como my-disk.yaml, no editor à sua escolha:

    nano my-disk.yaml
    
  2. Copie e cole o seguinte manifesto YAML:

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

    Substitua os seguintes valores:

    • DISK_NAME: o nome do disco.
    • STORAGE_CLASS_NAME: o StorageClass a usar para o seu disco. Este StorageClass já tem de existir. Se precisar de criar primeiro um StorageClass, consulte o artigo Crie uma StorageClass.
  3. Guarde e feche o manifesto do disco no editor.

  4. Crie o disco com kubectl:

    kubectl apply -f my-disk.yaml
    

Configure perfis de armazenamento

Os perfis de armazenamento oferecem opções de configuração adicionais associadas a cada StorageClass. Estas opções de configuração incluem o modo de acesso e o modo de volume a usar para VirtualMachineDisks que usam o StorageClass.

Sem um perfil de armazenamento configurado, os discos usam o ReadWriteOnce modo de acesso por predefinição. Este modo de acesso não é suficiente para cargas de trabalho de produção, uma vez que as funcionalidades como a migração em direto não funcionam. O modo de volume predefinido sem um perfil de armazenamento configurado é Filesystem.

O tempo de execução da VM no GDC gera automaticamente um perfil de armazenamento para cada StorageClass num cluster. O perfil de armazenamento tem o mesmo nome que o StorageClass associado. O exemplo de saída seguinte mostra que o cluster tem quatro classes de armazenamento e perfis associados:

  $ kubectl get storageprofiles

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

Para editar um perfil de armazenamento e alterar o modo de acesso ou o modo de volume, conclua os seguintes passos:

  1. Edite o recurso personalizado StorageProfile para edição:

    kubectl edit storageprofile STORAGE_PROFILE_NAME
    

    Substitua STORAGE_PROFILE_NAME pelo StorageProfile que quer editar.

  2. Adicione uma única entrada à lista spec.claimPropertySets do StorageProfile:

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

    Os componentes accessMode e volumeMode usam os componentes Kubernetes subjacentes. Os valores que define dependem do controlador de armazenamento que usa. Substitua os seguintes valores conforme adequado para o armazenamento que usa:

    • ACCESS_MODE: o modo de acesso que quer usar. Se for suportado pelo StorageClass associado, o modo de acesso preferencial é ReadWriteMany.
      • Os valores aceitáveis incluem ReadWriteOnce, ReadOnlyMany, ReadWriteMany e ReadWriteOncePod. Se não for especificado, é usado ReadWriteOnce com base nas predefinições do tempo de execução da VM no GDC. Para mais informações, consulte Modos de acesso.
    • VOLUME_MODE: o modo de volume que quer usar.
      • Os valores aceitáveis incluem Filesystem e Block. Se não for especificado, é usado o valor Filesystem com base nas predefinições do Kubernetes. Para mais informações, consulte Modos de volume.
  3. Guarde e feche o recurso personalizado StorageProfile no editor.

    As definições do perfil de armazenamento que definiu são usadas quando cria discos virtuais. Os recursos VirtualMachineDisk existentes não são atualizados para usar as definições do perfil de armazenamento definidas.

O que se segue?