Neste documento, explicamos como atualizar as propriedades de instâncias de máquina virtual (VMs) no Google Distributed Cloud (GDC) com isolamento físico.
É possível atualizar as propriedades da VM para alinhar a infraestrutura virtual às demandas variáveis das cargas de trabalho em execução em uma instância. É possível aumentar ou diminuir as vCPUs ou a memória física (RAM) para redistribuir recursos em outro lugar do projeto.
Em vez de destruir uma VM, recriá-la e migrar seus dados, você pode optar por atualizar as propriedades dela. Embora a atualização de propriedades geralmente exija uma reinicialização rápida, essa abordagem pode economizar horas de configuração.
Este documento é destinado a desenvolvedores em grupos de administradores de plataforma ou operadores de aplicativos que visualizam e atualizam propriedades de VM em um ambiente do Distributed Cloud. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
Antes de começar
Para usar os comandos da interface de linha de comando (CLI) gdcloud, verifique se você baixou, instalou
e configurou a CLI gdcloud.
Todos os comandos do Distributed Cloud usam a CLI gdcloud ou kubectl e exigem um ambiente de sistema operacional (SO).
Extrair o caminho do arquivo kubeconfig
Para executar comandos no servidor da API Management, verifique se você tem os seguintes recursos:
Faça login e gere o arquivo kubeconfig para o servidor da API Management se você não tiver um.
Use o caminho para o arquivo kubeconfig do servidor da API Management para substituir
MANAGEMENT_API_SERVERnestas instruções.
Solicitar papéis do IAM
Entre em contato com o administrador do IAM do projeto para solicitar as seguintes funções no projeto:
Administrador do projeto de máquina virtual (
project-vm-admin): cria, modifica, lista e exclui VMs no namespace do projeto.Leitor do projeto(
project-viewer): veja todos os recursos nos namespaces do projeto.
Todas as funções de VM precisam ser vinculadas ao namespace do projeto em que a VM reside. Siga as etapas para verificar seu acesso.
Propriedades atualizáveis
Só é possível mudar as propriedades que estão no spec da VM.
Ver propriedades atualizáveis
Encontre as propriedades que você quer mudar usando o console do GDC ou
kubectl.
Console
No menu de navegação, clique em Virtual Machines > Instâncias.
Na lista de VMs, clique no nome de uma delas para conferir as propriedades.
As propriedades editáveis têm um ícone edit Editar.
kubectl
Confira a lista de propriedades da VM
spece os valores válidos correspondentes a cada propriedade:kubectl --kubeconfig MANAGEMENT_API_SERVER \ explain virtualmachines.virtualmachine.gdc.goog.specO resultado será o seguinte:
KIND: VirtualMachine VERSION: virtualmachine.gdc.goog/v1 RESOURCE: spec <Object> DESCRIPTION: Defines the specification of the Virtual Machine. FIELDS: compute <Object> Specifies the CPU and Memory of the VM. CPU and Memory can be defined directly or through the VirtualMachineType. Changes to Compute require a reboot to take effect. Compute is immutable when the VM is in `Unknown` state. disks <[]Object> -required- Specifies the list of disks attached to this vm. There must be exactly one boot disk. Changes to disk attachments require a reboot to take effect. ...Confira recursivamente as subpropriedades de cada propriedade. Estes exemplos mostram o retorno das subpropriedades
computeevcpus:Este comando de exemplo retorna os campos da subpropriedade
compute:kubectl --kubeconfig MANAGEMENT_API_SERVER \ explain virtualmachines.virtualmachine.gdc.goog.spec.computeO resultado será o seguinte:
KIND: VirtualMachine VERSION: virtualmachine.gdc.goog/v1 RESOURCE: compute <Object> DESCRIPTION: Specifies the CPU and Memory of the VM. CPU and Memory can be defined directly or through the VirtualMachineType. Changes to Compute require a reboot to take effect. Compute is immutable when the VM is in `Unknown` state. FIELDS: memory <> Specifies the amount of physical memory available to the instance. memory must have a minimum value of `1G`, and can be up to (including) `400G`. vcpus <integer> Specifies the number of VCPUs that are available to the instance. Specify `vcpus` as an integer. This value must be a multiple of 2, with 2 as the minimum and 128 as the maximum allowed. ...Este comando de exemplo retorna os campos da subpropriedade
vcpus:kubectl --kubeconfig MANAGEMENT_API_SERVER \ explain virtualmachines.virtualmachine.gdc.goog.spec.compute.vcpusO resultado será o seguinte:
KIND: VirtualMachine VERSION: virtualmachine.gdc.goog/v1 FIELD: vcpus <integer> DESCRIPTION: Specifies the number of VCPUs that are available to the instance. Specify `vcpus` as an integer. This value must be a multiple of 2, with 2 as the minimum and 128 as the maximum allowed.
Todas as propriedades podem ser atualizadas em uma VM em execução, mas geralmente exigem que a VM seja reiniciada para entrar em vigor.
Essas atualizações de propriedade exigem que a VM seja reiniciada para que as mudanças entrem em vigor:
- compute
- discos
- firmware
- startupScripts
Estas atualizações de propriedade entram em vigor imediatamente:
- guestEnvironment
- runningState
Atualizar propriedades da VM
Atualize as propriedades da VM usando o console do GDC ou a kubectl.
Console
No menu de navegação, clique em Virtual Machines > Instâncias.
Na lista de VMs, clique no nome de uma delas para conferir as propriedades.
Clique em edit Editar ao lado da propriedade que você quer mudar e faça as alterações.
Se você quiser substituir o disco de inicialização ou adicionar um novo disco, consulte Substituir um disco de inicialização ou Adicionar um disco a uma VM.
Clique em Salvar.
kubectl
Execute este comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMESubstitua as variáveis conforme definido na tabela a seguir.
Variável Definição MANAGEMENT_API_SERVERO arquivo kubeconfig do servidor da API Management. VM_NAMEO nome da VM. PROJECTO nome do projeto. Edite o
specpara atualizar os campos e valores obrigatórios das propriedades atualizáveis.Salve o arquivo.
Se a atualização da propriedade exigir a reinicialização da VM, use as instruções em Reiniciar uma VM.