Este documento é destinado a proprietários de aplicativos que executam clusters do Anthos em bare metal. Neste documento, você verá como criar e gerenciar recursos de disco de máquinas virtuais (VMs) que usam o ambiente de execução de VMs do Anthos.
Antes de começar
Para concluir este documento, você precisa de acesso aos seguintes recursos:
- Acesso a clusters do Anthos na versão bare metal 1.12.0 (
anthosBareMetalVersion: 1.12.0
) ou superior. Use qualquer tipo de cluster capaz de executar cargas de trabalho. Se necessário, tente clusters do Anthos em bare metal no Compute Engine ou consulte a visão geral de criação de clusters. - A ferramenta do cliente
virtctl
instalada como um plug-in para okubectl
. Se necessário, instale a ferramenta de cliente virtctl.
Criar uma VM com um disco anexado
Ao criar uma VM, é possível anexar um disco de inicialização ou de dados, criar um disco com base em uma imagem (inclusive para o disco de inicialização) ou criar um disco em branco.
Disco em branco
Nesse cenário, você cria um disco em branco e o anexa à VM. Esse cenário permite criar um disco para armazenar dados do aplicativo.
Crie um manifesto que defina um
VirtualMachineDisk
e umaVirtualMachine
, como my-vm.yaml, no editor que você escolher:nano my-vm.yaml
Copie e cole a seguinte definição de YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 10Gi --- apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: interfaces: - name: eth0 networkName: pod-network default: true disks: - boot: true virtualMachineDiskName: VM_NAME-boot-dv - virtualMachineDiskName: DISK_NAME
Este exemplo cria um disco
10Gi
em branco (10 gibibyte) chamadoDISK_NAME
. Na seçãospec.disks
da VM, você também precisa anexar um disco de inicialização, como um de uma imagem conforme mostrado na próxima seção.Salve e feche o arquivo de manifesto no editor.
Crie a VM e o disco usando
kubectl
:kubectl apply -f my-vm.yaml
Da imagem
Neste cenário, você cria um disco usando uma imagem e o anexa à VM. Esse cenário permite criar um disco de inicialização, por exemplo, com base em uma imagem. Também é possível criar e anexar discos de dados de uma imagem.
Crie um manifesto que defina um
VirtualMachineDisk
e umaVirtualMachine
, como my-vm.yaml, no editor que você escolher:nano my-vm.yaml
Copie e cole a seguinte definição de YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: VM_NAME-boot-dv spec: size: 20Gi source: http: url: https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img --- apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: interfaces: - name: eth0 networkName: pod-network default: true disks: - boot: true virtualMachineDiskName: VM_NAME-boot-dv
Neste exemplo, criamos um disco
20Gi
(20 gibibyte) chamadoVM_NAME-boot-dv
, usando uma imagem pública do Ubuntu. Na seçãospec.disks
da VM, o disco está definido comoboot: true
.Salve e feche o manifesto no editor.
Crie a VM e o disco usando
kubectl
:kubectl apply -f my-vm.yaml
Disco atual
Nesse cenário, você cria um disco em branco e o anexa à VM. Esse cenário permite criar um disco para armazenar dados do aplicativo.
Crie um manifesto
VirtualMachine
, como my-vm.yaml, no editor de sua escolha:nano my-vm.yaml
Copie e cole a seguinte definição de YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: interfaces: - name: eth0 networkName: pod-network default: true disks: - boot: true virtualMachineDiskName: VM_NAME-boot-dv - virtualMachineDiskName: EXISTING_DISK_NAME
Neste exemplo, anexamos um disco chamado
EXISTING_DISK_NAME
.Na seção
spec.disks
da VM, você também precisa anexar um disco de inicialização como de uma imagem, como mostrado na seção anterior.Salve e feche o manifesto da VM no editor.
Crie a VM usando
kubectl
:kubectl apply -f my-vm.yaml
Criar e anexar discos a uma VM
Se você já tiver uma VM, poderá criar e anexar discos para oferecer suporte aos ciclos de vida dos seus aplicativos. A VM precisa estar parada para poder ser anexada ao disco.
Disco em branco
Nesse cenário, você cria um disco em branco e o anexa à VM. Esse cenário permite criar um disco para armazenar dados do aplicativo.
Use
kubectl
para interromper a VM, se necessário:kubectl virt stop vm VM_NAME
Substitua
VM_NAME
pelo nome da VM que você quer interromper.Edite seu recurso de VM atual, como
my-vm
:kubectl edit gvm VM_NAME
Atualize o manifesto YAML
VirtualMachine
para adicionar uma seçãoVirtualMachineDisk
na parte superior e, em seguida, anexe o disco ao final da seçãospec.disks
da VM:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 10Gi --- apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: interfaces: - name: eth0 networkName: pod-network default: true disks: - boot: true virtualMachineDiskName: VM_NAME-boot-dv - virtualMachineDiskName: DISK_NAME
Este exemplo cria um disco
10Gi
em branco (10 gibibyte) chamadoDISK_NAME
.Salve e feche o manifesto da VM atualizado no editor.
Use
kubectl
para iniciar a VM:kubectl virt start vm VM_NAME
Substitua
VM_NAME
pelo nome da VM que você quer iniciar.
Da imagem
Nesse cenário, você cria um disco com base em uma imagem de origem e o anexa à VM.
Use
kubectl
para interromper a VM, se necessário:kubectl virt stop vm VM_NAME
Substitua
VM_NAME
pelo nome da VM que você quer interromper.Edite seu recurso de VM atual, como
my-vm
:kubectl edit gvm VM_NAME
Atualize o manifesto
VirtualMachine
para adicionar uma seçãoVirtualMachineDisk
na parte superior e, em seguida, anexe o disco ao final da seçãospec.disks
da VM:apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 10Gi source: http: url: http://example.com/my-disk-img.qcow2 --- apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: interfaces: - name: eth0 networkName: pod-network default: true disks: - boot: true virtualMachineDiskName: VM_NAME-boot-dv - virtualMachineDiskName: DISK_NAME
Neste exemplo, criamos um disco
10Gi
(10 gibibyte) chamadoDISK_NAME
a partir da origem HTTPhttp://example.com/my-disk-img.qcow2
.Salve e feche o manifesto da VM atualizado no editor.
Use
kubectl
para iniciar a VM:kubectl virt start vm VM_NAME
Substitua
VM_NAME
pelo nome da VM que você quer iniciar.
Criar um disco
Nesse cenário, você cria os recursos de disco separadamente dos recursos de VM. Este cenário permite que você crie discos com antecedência e anexá-los às VMs conforme necessário.
Disco em branco
Para criar um disco em branco, siga as etapas abaixo.
Crie um manifesto
VirtualMachineDisk
, como my-disk.yaml, no editor de sua escolha:nano my-disk.yaml
Copie e cole a seguinte definição de YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 10Gi
Este exemplo cria um disco
10Gi
em branco (10 gibibyte) chamadoDISK_NAME
.Salve e feche o manifesto do disco no editor.
Crie o disco usando
kubectl
:kubectl apply -f my-disk.yaml
Da imagem
Para criar um disco com base em uma imagem, siga as etapas abaixo.
Crie um manifesto
VirtualMachineDisk
, como my-disk.yaml, no editor de sua escolha:nano my-disk.yaml
Copie e cole a seguinte definição de YAML:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 20Gi source: http: url: https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.img
Neste exemplo, criamos um disco
20Gi
(20 gibibyte) chamadoDISK_NAME
, usando uma imagem pública do Ubuntu.Salve e feche o manifesto do disco no editor.
Crie o disco usando
kubectl
:kubectl apply -f my-disk.yaml
A seguir
- Crie e use credenciais para importar imagens do Cloud Storage.
- Crie e use classes de armazenamento em clusters do Anthos em bare metal.
- Quando você não precisar mais de VMs ou dos respectivos recursos de disco virtual, exclua uma VM em clusters do Anthos em bare metal.