Nesta página, você encontra instruções para criar uma instância de máquina virtual (VM) usando uma imagem ou um snapshot de disco de inicialização.
É possível criar uma VM com um ou mais discos. Também é possível adicionar discos à VM depois da criação. O appliance isolado do Google Distributed Cloud (GDC) inicia automaticamente a instância de VM após a criação.
É possível adicionar scripts de inicialização a uma VM antes ou depois da criação. Para ler mais sobre scripts de inicialização, consulte a página Usar um script de inicialização com uma instância de VM.
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 para o dispositivo isolado do GDC 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:
Localize o nome do servidor da API Management ou pergunte ao administrador da plataforma (PA) qual é o nome do servidor.
Faça login e gere o arquivo kubeconfig para o servidor da API Management se você não tiver um.
Use o caminho para substituir
MANAGEMENT_API_SERVER{"</var>"}}
nestas instruções.
Solicitar permissões e acesso
Para executar as tarefas listadas nesta página, você precisa ter o papel de administrador de máquina virtual do projeto. Siga as etapas para
verificar
ou peça ao administrador do IAM do projeto para
atribuir
a você o papel de administrador de máquinas virtuais do projeto (project-vm-admin
) no namespace
do projeto em que a VM reside.
Para operações de VM usando o console do GDC ou a CLI gdcloud,
peça ao administrador do IAM do projeto para atribuir a você os papéis de
administrador de máquina virtual do projeto e leitor do projeto (project-viewer
).
Criar uma instância de VM a partir de uma imagem
Nesta seção, mostramos como criar uma VM usando uma imagem do SO fornecida pelo GDC ou uma imagem do SO personalizada.
Conferir uma lista de imagens disponíveis fornecidas pelo GDC
Antes de criar uma VM usando uma imagem fornecida pelo GDC, revise a lista de imagens disponíveis.
gdcloud
Liste todas as imagens disponíveis e o tamanho mínimo do disco:
gdcloud compute images list
Esse comando inclui imagens fornecidas pelo GDC e personalizadas. Escolha uma das imagens no namespace vm-system
.
API
Liste todas as imagens fornecidas pelo GDC disponíveis:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system
Receba o
minimumDiskSize
de uma imagem específica fornecida pelo GDC:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system \ BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
Substitua:
MANAGEMENT_API_SERVER
com okubeconfig
para o servidor da API Management.BOOT_DISK_IMAGE_NAME
com o nome da imagem.
Criar uma instância de VM com uma imagem fornecida pelo GDC
Por padrão, todos os projetos do GDC podem criar VMs com imagens do SO fornecidas pelo GDC.
gdcloud
Selecione uma imagem fornecida pelo GDC para criar a instância de VM:
gdcloud compute instances create VM_NAME \
--machine-type=MACHINE_TYPE \
--image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
--boot-disk-size=BOOT_DISK_SIZE \
--no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
Substitua:
Variável | Definição |
---|---|
VM_NAME |
O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres. |
BOOT_DISK_IMAGE_NAME |
O nome da imagem a ser usada para o disco de inicialização da nova VM. |
BOOT_DISK_SIZE |
O tamanho do disco de inicialização, como 20G .Esse valor precisa ser sempre maior ou igual ao minimumDiskSize da imagem do disco de inicialização. |
NO_BOOT_DISK_AUTO_DELETE |
true ou false , indicando o inverso de se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída. |
MACHINE_TYPE |
O tipo de máquina predefinido para a nova VM. Para selecionar um tipo de máquina disponível, execute este comando:
gdcloud compute machine-types list
|
API
Selecione uma imagem fornecida pelo dispositivo isolado do GDC para criar a instância de VM:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ apply -n PROJECT -f - <<EOF apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachineDisk metadata: name: VM_BOOT_DISK_NAME spec: source: image: name: BOOT_DISK_IMAGE_NAME namespace: vm-system size: BOOT_DISK_SIZE --- apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachine metadata: name: VM_NAME spec: compute: virtualMachineType: MACHINE_TYPE disks: - virtualMachineDiskRef: name: VM_BOOT_DISK_NAME boot: true autoDelete: BOOT_DISK_AUTO_DELETE EOF
Substitua:
Variável Definição MANAGEMENT_API_SERVER
O caminho do servidor da API Management kubeconfig
.PROJECT
O projeto do dispositivo com isolamento físico do GDC para criar a VM. VM_NAME
O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres. VM_BOOT_DISK_NAME
O nome do novo disco de inicialização da VM. BOOT_DISK_IMAGE_NAME
O nome da imagem a ser usada para o disco de inicialização da nova VM. BOOT_DISK_SIZE
O tamanho do disco de inicialização, como 20G
.
Esse valor precisa ser sempre maior ou igual aominimumDiskSize
da imagem do disco de inicialização.BOOT_DISK_AUTO_DELETE
true
oufalse
, indicando se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.MACHINE_TYPE
O tipo de máquina predefinido para a nova VM. Para selecionar um tipo de máquina disponível, execute este comando:
gdcloud compute machine-types list
Verifique se a VM foi criada e aguarde até que ela mostre que está no estado
Running
. O estadoRunning
não indica que o SO está totalmente pronto e acessível.kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
Substitua
VM_NAME
ePROJECT
pelo nome e projeto da VM.VM_NAME
precisa conter apenas caracteres alfanuméricos e traços.Para adicionar um script de inicialização à criação da instância de VM, siga as etapas fornecidas na página Usar um script de inicialização com uma instância de VM. Encerre a VM antes de adicionar o script.
Criar uma instância de VM a partir de uma imagem personalizada
Uma imagem personalizada pertence exclusivamente ao seu projeto. Para criar uma VM com uma imagem personalizada, primeiro crie uma imagem personalizada no mesmo projeto, se você ainda não tiver uma.
gdcloud
Listar todas as imagens personalizadas:
gdcloud compute images list --no-standard-images=true
Crie a instância da VM.
gdcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --image=BOOT_DISK_IMAGE_NAME \ --boot-disk-size=BOOT_DISK_SIZE \ --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
Substitua:
Variável Definição VM_NAME
O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres. BOOT_DISK_IMAGE_NAME
O nome da imagem a ser usada para o disco de inicialização da nova VM. BOOT_DISK_SIZE
O tamanho do disco de inicialização, como 20G
.
Esse valor precisa ser sempre maior ou igual aominimumDiskSize
da imagem do disco de inicialização.NO_BOOT_DISK_AUTO_DELETE
true
oufalse
, indicando o inverso de se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.MACHINE_TYPE
O tipo de máquina predefinido para a nova VM. Para selecionar um tipo de máquina disponível, execute este comando:
gdcloud compute machine-types list
API
Listar todas as imagens personalizadas:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT
Receba o
minimumDiskSize
de uma imagem específica para criar uma instância de VM:kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT \ BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
Substitua:
Variável Definição MANAGEMENT_API_SERVER
O caminho do servidor da API Management kubeconfig
.BOOT_DISK_IMAGE_NAME
O nome da imagem escolhida no comando para listar todas as imagens personalizadas. PROJECT
O projeto da imagem. Crie a instância da VM.
kubectl --kubeconfig MANAGEMENT_API_SERVER \ apply -n PROJECT -f - <<EOF apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachineDisk metadata: name: VM_BOOT_DISK_NAME spec: source: image: name: BOOT_DISK_IMAGE_NAME size: BOOT_DISK_SIZE --- apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachine metadata: name: VM_NAME spec: compute: virtualMachineType: MACHINE_TYPE disks: - virtualMachineDiskRef: name: VM_BOOT_DISK_NAME boot: true autoDelete: BOOT_DISK_AUTO_DELETE EOF
Substitua as variáveis usando as seguintes definições:
Variável Definição MANAGEMENT_API_SERVER
O arquivo kubeconfig
do servidor da API Management.PROJECT
O projeto do dispositivo com isolamento físico do GDC para criar a VM. VM_NAME
O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres. VM_BOOT_DISK_NAME
O nome do novo disco de inicialização da VM. BOOT_DISK_IMAGE_NAME
O nome da imagem a ser usada para o disco de inicialização da nova VM. BOOT_DISK_SIZE
O tamanho do disco de inicialização, como 20G
.
Esse valor precisa ser sempre maior ou igual aominimumDiskSize
da imagem do disco de inicialização.BOOT_DISK_AUTO_DELETE
true
oufalse
, indicando se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.MACHINE_TYPE
O tipo de máquina predefinido para a nova VM. Para selecionar um tipo de máquina disponível, execute este comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
Verifique se a VM foi criada e aguarde até que ela mostre que está no estado
Running
. O estadoRunning
não indica que o SO está totalmente pronto e acessível.kubectl --kubeconfig MANAGEMENT_API_SERVER \ get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
Substitua
VM_NAME
ePROJECT
pelo nome e projeto da VM.VM_NAME
precisa conter apenas caracteres alfanuméricos e traços.
Criar uma instância de VM com discos extras que não são de inicialização
É possível criar discos que não são de inicialização ao criar uma VM. Cada disco adicional pode especificar ou não uma origem de imagem. O último caso é para criar um disco em branco.
gdcloud
Crie um disco com base em uma imagem:
gdcloud compute disks create NON_BOOT_DISK_FROM_IMAGE \ --size=NON_BOOT_DISK_SIZE \ --image=NON_BOOT_DISK_IMAGE_NAME \ --image-project=NON_BOOT_DISK_IMAGE_NAMESPACE
Crie um disco com base em uma imagem em branco:
gdcloud compute disks create NON_BOOT_BLANK_DISK \ --size=NON_BOOT_BLANK_DISK_SIZE \
Crie uma instância com os discos da etapa anterior:
gdcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \ --boot-disk-size=BOOT_DISK_SIZE \ --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE \ --disk=name=NON_BOOT_DISK_FROM_IMAGE \ --disk=name=NON_BOOT_BLANK_DISK
Substitua:
Variável Definição VM_NAME
O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres. BOOT_DISK_IMAGE_NAME
O nome da imagem a ser usada para o disco de inicialização da nova VM. BOOT_DISK_IMAGE_NAMESPACE
O namespace da imagem a ser usada para o disco de inicialização da nova VM. Use vm-system
para uma imagem fornecida pelo GDC ou deixe o campo em branco para uma imagem personalizada.BOOT_DISK_SIZE
O tamanho do disco de inicialização, como 20G
.
Esse valor precisa ser sempre maior ou igual aominimumDiskSize
da imagem do disco de inicialização.NO_BOOT_DISK_AUTO_DELETE
true
oufalse
, indicando o inverso de se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.MACHINE_TYPE
O tipo de máquina predefinido para a nova VM. Para selecionar um tipo de máquina disponível, execute este comando:
gdcloud compute machine-types list
Nos discos extras, substitua:
NON_BOOT_DISK_FROM_IMAGE
,NON_BOOT_BLANK_DISK
: o nome do disco adicional.NON_BOOT_DISK_SIZE
,NON_BOOT_BLANK_DISK_SIZE
: o tamanho dos discos adicionais, por exemplo,20G
.NON_BOOT_DISK_IMAGE_NAME
: o nome da imagem a ser usada como um disco que não é de inicialização.NON_BOOT_DISK_IMAGE_NAMESPACE
: o namespace da imagem a ser usada como disco que não é de inicialização. Usevm-system
para uma imagem fornecida pela GDC ou deixe o campo em branco para uma imagem personalizada.
API
- Crie uma VM com um disco que não seja de inicialização:
kubectl --kubeconfig MANAGEMENT_API_SERVER \
apply -n PROJECT -f - <<EOF
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
name: NON_BOOT_DISK_FROM_IMAGE
spec:
source:
image:
name: NON_BOOT_DISK_IMAGE_NAME
namespace: NON_BOOT_DISK_IMAGE_NAMESPACE
size: NON_BOOT_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
name: NON_BOOT_BLANK_DISK
spec:
size: NON_BOOT_BLANK_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
name: VM_BOOT_DISK_NAME
spec:
source:
image:
name: BOOT_DISK_IMAGE_NAME
namespace: BOOT_DISK_IMAGE_NAMESPACE
size: BOOT_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachine
metadata:
name: VM_NAME
spec:
compute:
virtualMachineType: MACHINE_TYPE
disks:
- virtualMachineDiskRef:
name: VM_BOOT_DISK_NAME
boot: true
autoDelete: BOOT_DISK_AUTO_DELETE
- virtualMachineDiskRef:
name: NON_BOOT_DISK_FROM_IMAGE
- virtualMachineDiskRef:
name: NON_BOOT_BLANK_DISK
EOF
Substitua:
Variável | Definição |
---|---|
MANAGEMENT_API_SERVER |
O caminho do servidor da API Management kubeconfig . |
PROJECT |
O projeto do GDC em que você quer criar a VM. |
VM_NAME |
O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres. |
VM_BOOT_DISK_NAME |
O nome do novo disco de inicialização da VM. |
BOOT_DISK_IMAGE_NAME |
O nome da imagem a ser usada para o disco de inicialização da nova VM. |
BOOT_DISK_IMAGE_NAMESPACE |
O namespace da imagem a ser usada para o disco de inicialização da nova VM. Use o namespace vm-system para uma imagem fornecida pelo GDC ou deixe em branco para uma imagem personalizada. |
BOOT_DISK_SIZE |
O tamanho do disco de inicialização, como 20G .Esse valor precisa ser sempre maior ou igual ao minimumDiskSize da imagem do disco de inicialização. |
BOOT_DISK_AUTO_DELETE |
true ou false , indicando se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída. |
MACHINE_TYPE |
O tipo de máquina predefinido para a nova VM. Para selecionar um tipo de máquina disponível, execute este comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER get
virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
|
Nos discos extras, substitua:
NON_BOOT_DISK_FROM_IMAGE
,NON_BOOT_BLANK_DISK
: o nome do disco adicional.NON_BOOT_DISK_SIZE
,NON_BOOT_BLANK_DISK_SIZE
: o tamanho dos discos adicionais, por exemplo,20G
.NON_BOOT_DISK_IMAGE_NAME
: o nome da imagem que você quer usar como disco que não é de inicialização.NON_BOOT_DISK_IMAGE_NAMESPACE
: o namespace da imagem que você quer usar como disco que não é de inicialização. Use o namespacevm-system
para uma imagem fornecida pelo GDC ou deixe em branco para uma imagem personalizada.
Formate e ative os discos antes de usá-los.
Criar uma VM de um snapshot ou backup
É possível criar uma nova VM a partir de um snapshot das seguintes maneiras:
- Restaurar um disco de inicialização de VM: se você fez backup de um disco de inicialização de uma VM com um snapshot, use-o para criar uma nova VM. Consulte Restaurar um snapshot.
- Restaurar um disco que não é de inicialização:se você fez backup de um disco que não é de inicialização com um snapshot, também poderá restaurá-lo para um novo disco que não seja de inicialização ao criar uma VM, usando as mesmas instruções.
Para criar mais de uma VM com o mesmo disco de inicialização, faça o seguinte:
- Crie uma imagem personalizada.
- Crie VMs com essa imagem sem usar um snapshot.
Criar uma VM sem usar o tipo de máquina
O appliance isolado do GDC oferece tipos de máquinas predefinidos que podem ser usados ao criar uma instância de VM. Um tipo de máquina predefinido tem um número predefinido de vCPUs e uma quantidade de memória.
Se as VMs predefinidas não atenderem às suas necessidades, crie uma instância de VM com configurações personalizadas de hardware virtualizado.
As VMs personalizadas são ideais nos seguintes cenários:
- Cargas de trabalho que não são aplicáveis aos tipos de VM predefinidos.
Cargas de trabalho que exigem mais potência de processamento ou mais memória, mas não precisam de todos os upgrades fornecidos pelo próximo nível de tipo de máquina.
gdcloud
Crie uma VM com um tipo de máquina definido por você:
gdcloud compute instances create VM_NAME \ --custom-cpu=NUM_VCPU \ --custom-memory=MEMORY --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \ --boot-disk-size=BOOT_DISK_SIZE \ --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
Substitua:
Variável Definição VM_NAME
O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres. BOOT_DISK_IMAGE_NAME
O nome da imagem a ser usada para o disco de inicialização da nova VM. BOOT_DISK_SIZE
O tamanho do disco de inicialização, como 20G
.
Esse valor precisa ser sempre maior ou igual aominimumDiskSize
da imagem do disco de inicialização.NO_BOOT_DISK_AUTO_DELETE
true
oufalse
, indicando o inverso de se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.NUM_VCPU
O número de vCPUs. O número máximo de vCPUs aceitas é 192. MEMORY
O tamanho da memória, como 8G
. O tamanho máximo da memória é de um terabyte (TB).
API
Crie uma VM com um tipo de máquina definido por você:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ apply -n PROJECT -f - <<EOF apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachineDisk metadata: name: VM_BOOT_DISK_NAME spec: source: image: name: BOOT_DISK_IMAGE_NAME namespace: vm-system size: BOOT_DISK_SIZE --- apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachine metadata: name: VM_NAME spec: compute: vcpus: NUM_VCPU memory: MEMORY disks: - virtualMachineDiskRef: name: VM_BOOT_DISK_NAME boot: true autoDelete: BOOT_DISK_AUTO_DELETE EOF
Substitua:
Variável Definição MANAGEMENT_API_SERVER
O caminho do servidor da API Management kubeconfig
.PROJECT
O projeto do dispositivo com isolamento físico do GDC para criar a VM. VM_NAME
O nome da nova VM. O nome precisa conter apenas caracteres alfanuméricos e traços e não pode ter mais de 53 caracteres. VM_BOOT_DISK_NAME
O nome do novo disco de inicialização da VM. BOOT_DISK_IMAGE_NAME
O nome da imagem a ser usada para o disco de inicialização da nova VM. BOOT_DISK_SIZE
O tamanho do disco de inicialização, como 20G
.
Esse valor precisa ser sempre maior ou igual aominimumDiskSize
da imagem do disco de inicialização.BOOT_DISK_AUTO_DELETE
true
oufalse
, indicando se o disco de inicialização é excluído automaticamente quando a instância de VM é excluída.NUM_VCPU
O número de vCPUs. O número máximo de vCPUs aceitas é 192. MEMORY
O tamanho da memória, como 8G
. O tamanho máximo da memória é de um TB.