Se você precisar que as VMs sejam inicializadas o mais rápido possível, minimize o horário de início da máquina virtual (VM) com as instruções nesta página. Minimizar o horário de início tem o custo da eficiência de recursos: seu projeto consome mais recursos e tem uma superfície de segurança maior.
Este documento é destinado a desenvolvedores em grupos de administradores de plataforma ou operadores de aplicativos que configuram o horário de início da instância 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, faça o download, instale
e configure a CLI gdcloud.
Todos os comandos do Distributed Cloud usam a CLI gdcloud ou
kubectl e exigem um ambiente de sistema operacional (SO).
Acessar o caminho do arquivo kubeconfig
Para executar comandos no servidor de 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 de API Management para substituir
MANAGEMENT_API_SERVERnestas instruções.
Solicitar papéis do IAM
Para minimizar o horário de início da VM, entre em contato com o administrador do projeto do IAM para solicitar
o papel de Administrador do projeto de máquina virtual (project-vm-admin).
Todos os papéis de VM precisam ser vinculados ao namespace do projeto em que a VM reside. Siga as etapas para verificar seu acesso.
Manter as conexões de disco ativas
Quando uma VM é iniciada, leva alguns segundos para que uma conexão seja estabelecida entre o nó e o disco da VM. Para que a VM seja iniciada mais rapidamente, a conexão do disco precisa ser mantida ativa quando a VM é encerrada, para que ela não seja reiniciada nas inicializações subsequentes da VM. Para isso, quando você executa o comando para ativar o keep-alive da conexão de disco, o sistema cria automaticamente um pod fictício que monta todos os discos da VM.
Ativar a manutenção da conexão do disco
Para manter as conexões de disco ativas para uma VM chamada VM_NAME
no projeto PROJECT, execute
o comando a seguir. Quando você fizer isso, o sistema vai criar automaticamente o pod
fictício:
kubectl --kubeconfig MANAGEMENT_API_SERVER \
-n PROJECT \
patch virtualmachines.virtualmachine.gdc.goog VM_NAME \
--type merge --patch $'
metadata:
annotations:
disk.virtualmachine.gdc.goog/enable-connection-keep-alive: "true"
'
Substitua as variáveis ao longo destas instruções usando as seguintes definições.
| Variável | Definição |
|---|---|
MANAGEMENT_API_SERVER |
O arquivo kubeconfig do servidor de API Management. |
VM_NAME |
O nome da VM. |
PROJECT |
O projeto do GDC em que a VM reside. |
Quando a conexão de disco keep-alive está ativada, um pod chamado
disk-connection-keep-alive-VM_NAME é criado no mesmo
projeto que a VM. A próxima reinicialização da VM é mais rápida, assim como os horários de início subsequentes,
porque as conexões de disco da VM são mantidas ativas pelo pod.
Configurar a afinidade de keep-alive da conexão de disco
O programador do Kubernetes pode selecionar um nó diferente para a VM quando ela for reiniciada. Para reduzir as chances de isso acontecer, configure uma regra de afinidade entre VMs entre a VM e o pod de keep-alive. Para configurar isso para acontecer automaticamente:
kubectl --kubeconfig MANAGEMENT_API_SERVER \
-n PROJECT \
patch virtualmachines.virtualmachine.gdc.goog VM_NAME \
--type merge --patch $'
metadata:
annotations:
disk.virtualmachine.gdc.goog/add-connection-keep-alive-affinity: "true"
'
Isso adiciona uma configuração de afinidade preferencial na VM ao pod de keep-alive.
Advertências
Há duas ressalvas para manter as conexões de disco ativas:
- O pod de keep-alive gera um uso adicional de recursos:
- Ele conta para o limite do número de pods por nó.
- Ele usa um endereço IP adicional atribuído pelo Kubernetes.
- Ele usa uma quantidade insignificante de CPU e memória.
- A superfície de segurança aumenta, porque o nó em que o pod de keep-alive está presente sempre tem os discos da VM anexados, mesmo quando a VM é encerrada.
Usar firmware do BIOS
No GDC, iniciar uma VM com firmware UEFI (Unified Extensible Firmware Interface) é mais lento do que iniciar uma VM com firmware BIOS.
Para garantir que o tempo de início seja mínimo, defina o tipo de firmware da VM como BIOS:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ patch virtualmachines.virtualmachine.gdc.goog VM_NAME \ -type merge --patch $' spec: firmware: type: bios enableSecureBoot: 'Se a VM estiver em execução, reinicie-a usando as instruções para reiniciar a VM.
Advertências
A ressalva ao usar o firmware do BIOS é que ele não é compatível com a inicialização segura.
Usar um disco de inicialização grande
Para minimizar o tempo de inicialização da VM, anexe um disco de inicialização com tamanho de 500 GB ou mais à VM.