Este documento é destinado a proprietários de aplicativos e administradores de plataforma
que executam o GKE em Bare Metal. Neste documento, mostramos como criar e usar
classes de armazenamento para VMs que usam o ambiente de execução de VMs no Google Distributed Cloud. Um StorageClass
permite definir diferentes configurações de armazenamento para atender às várias
necessidades das VMs.
Antes de começar
Para concluir este documento, acesse os clusters do GKE em Bare Metal versão
1.12.0 (anthosBareMetalVersion: 1.12.0
) ou superior. Use qualquer tipo de cluster capaz de executar cargas de trabalho. Se necessário,
teste o GKE em Bare Metal no Compute Engine
ou consulte a
visão geral da criação de clusters.
Visão geral das classes de armazenamento
Use um StorageClass
para definir o tipo de armazenamento que disponibiliza para as VMs. Diferentes classes de armazenamento podem ser mapeadas para um tipo diferente de hardware
de armazenamento, sistema de arquivos ou desempenho. É possível criar e usar classes de armazenamento para
oferecer suporte às cargas de trabalho de computação no ambiente de execução de VMs no Google Distributed Cloud. Para mais informações, consulte Classes de armazenamento.
Um StorageClass
padrão pode ser definido no recurso personalizado do
ambiente de execução de VMs Runtime no Google Distributed Cloud. Se você não definir uma classe específica ao
criar um VirtualMachineDisks,
, este StorageClass
padrão será usado. Nenhuma StorageClass
inicial é configurada e definida como padrão. Na seção a seguir, você
saberá como
definir ou atualizar esse StorageClass padrão.
Definir ou atualizar o StorageClass padrão
Inicialmente, o GKE em Bare Metal com o ambiente de execução de VMs no Google Distributed Cloud não tem o StorageClass
padrão configurado. Para criar um VirtualMachineDisk
sem especificar um
StorageClass
, primeiro é necessário
criar um StorageClass
e, em seguida, defini-lo como padrão.
Se você quiser definir ou atualizar inicialmente o StorageClass
padrão que o
ambiente de execução de VMs no Google Distributed Cloud usa ao criar um VirtualMachineDisk
, atualize
o recurso personalizado VMRuntime
.
Edite o recurso personalizado
VMRuntime
:kubectl edit vmruntime
Adicione ou atualize a seção
spec.storage
que especifica oStorageClass
padrão a ser usado: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 doStorageClass
padrão que você quer usar. Se você precisar criar umStorageClass
primeiro, consulte Criar umStorageClass
.Salve e feche o recurso personalizado
VMRuntime
no editor.O
StorageClass
que você especificou agora é usado quando você cria um disco de máquina virtual e não especifica umStorageClass
. A seção a seguir mostra como criar um disco e usar um StorageClass específico.Os recursos
VirtualMachineDisk
existentes não são atualizados para usar oStorageClass
recém-especificado.
Usar um StorageClass específico
Se você não quiser usar o StorageClass
padrão ao criar uma
VirtualMachineDisk
, use o campo storageClassName
para especificar um
StorageClass
diferente.
Para usar uma StorageClass
específica já definida ao criar uma
VirtualMachineDisk
, siga estas etapas:
Crie um manifesto de
VirtualMachineDisk
, comomy-disk.yaml
, no editor de sua escolha:nano my-disk.yaml
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
: oStorageClass
a ser usado no disco. EsseStorageClass
já precisa existir. Se você precisar criar umStorageClass
primeiro, consulte Criar um StorageClass.
Salve e feche o manifesto do disco no editor.
Crie o disco usando
kubectl
:kubectl apply -f my-disk.yaml
Configurar perfis de armazenamento
Os perfis de armazenamento oferecem opções de configuração adicionais associadas a cada
StorageClass
. Essas opções de configuração incluem os modos de acesso e volume
que serão usados para VirtualMachineDisks
que usam StorageClass
.
Sem um perfil de armazenamento configurado, os discos serão definidos como o modo de acesso ReadWriteOnce
por padrão. Esse modo de acesso não é suficiente para as cargas de trabalho de produção, já que
recursos como a migração em tempo real não funcionam. O modo de volume padrão sem um
perfil de armazenamento configurado é Filesystem
.
O ambiente de execução de VMs no Google Distributed Cloud gera automaticamente um perfil de armazenamento para
cada StorageClass
de um cluster. O perfil de armazenamento tem o mesmo nome do
StorageClass
associado. O exemplo de saída a seguir 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 mudar o modo de acesso ou de volume, siga estas etapas:
Edite o recurso personalizado
StorageProfile
para edição:kubectl edit storageprofile STORAGE_PROFILE_NAME
Substitua
STORAGE_PROFILE_NAME
pelaStorageProfile
que você quer editar.Adicione uma única entrada à lista
spec.claimPropertySets
doStorageProfile
:apiVersion: cdi.kubevirt.io/v1beta1 kind: StorageProfile metadata: name: nfs spec: claimPropertySets: - accessModes: - ACCESS_MODE volumeMode: VOLUME_MODE
accessMode
evolumeMode
usam os componentes do Kubernetes subjacentes. Os valores definidos dependem do driver de armazenamento que você usa. Substitua os valores a seguir conforme apropriado para o armazenamento que você usa:ACCESS_MODE
: o modo de acesso que você quer usar. Se compatível com oStorageClass
associado, o modo de acesso preferencial éReadWriteMany
.- Os valores aceitáveis incluem
ReadWriteOnce
,ReadOnlyMany
,ReadWriteMany
, eReadWriteOncePod
. Se não for especificado,ReadWriteOnce
será usado com base no ambiente de execução de VMs nos padrões do Google Distributed Cloud. Para mais informações, consulte Modos de acesso.
- Os valores aceitáveis incluem
VOLUME_MODE
: o modo de volume que você quer usar.- Os valores aceitáveis incluem
Filesystem
eBlock
. Se não for especificado,Filesystem
será usado com base nos padrões do Kubernetes. Para mais informações, consulte Modos de volume.
- Os valores aceitáveis incluem
Salve e feche o recurso personalizado
StorageProfile
no editor.As configurações do perfil de armazenamento definidas são usadas quando você cria qualquer disco virtual. Os recursos atuais do
VirtualMachineDisk
não são atualizados para usar as configurações do perfil de armazenamento definido.
A seguir
- Crie e gerencie discos no GKE em Bare Metal.
Crie e use credenciais para importar imagens do Cloud Storage.