Editar a configuração da VM no ambiente de execução da VM do Anthos

Este documento é destinado a proprietários de aplicativos que executam clusters do Anthos em bare metal. Neste documento, mostramos como editar máquinas virtuais (VMs) executadas com o Anthos VM Runtime. Por exemplo, é possível editar a alocação de recursos, como CPU e memória, ou alterar a rede a que uma VM se conecta.

É possível modificar qualquer campo na seção spec de um recurso VirtualMachine. Também é possível editar os rótulos de uma VM. Outros campos, como o nome da VM (metadata.name), não podem ser editados. A VM precisa estar no estado Stopped antes de editar o recurso.

Se as edições no recurso VirtualMachine tiverem erros quando você as salvar, as mudanças serão recusadas, e você verá uma notificação. Corrija os erros e tente salvar o recurso VirtualMachine novamente. Se a VM não iniciar depois que você fizer alterações, use o comando kubectl describe gvm VM_NAME para ver informações de solução de problemas e corrigir os erros.

Antes de começar

Para concluir este documento, você precisa de acesso aos seguintes recursos:

Editar recursos de computação

Se as demandas de carga de trabalho de computação mudarem, será possível atualizar o número de CPUs virtuais e a quantidade de memória virtual atribuída às VMs. Para editar suas cargas de trabalho de computação, siga as seguintes etapas:

  1. Pare a VM que você quer editar:

    kubectl virt stop VM_NAME
    

    Substitua VM_NAME pelo nome da VM que você quer interromper.

  2. Use kubectl para editar a VM:

    kubectl edit gvm VM_NAME
    

    Substitua VM_NAME pelo nome da VM que você quer iniciar.

  3. No editor, atualize os valores dos recursos de computação que você quer alterar.

    Por exemplo, o manifesto de amostra VirtualMachine a seguir mostra que o recurso da VM tem 2 vCPUs atribuídas:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      compute:
        cpu:
          vcpus: 2
    ...
    

    Se você quiser atualizar o número de vCPUs atribuídas, altere o valor no editor, como mostrado no exemplo a seguir:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      compute:
        cpu:
          vcpus: 4
    ...
    
  4. Salve e feche o manifesto da VM.

  5. Inicie a VM que você editou:

    kubectl virt start VM_NAME
    

    Substitua VM_NAME pelo nome da VM que você editou.

  6. Verifique o STATUS da sua VM:

    kubectl get gvm VM_NAME
    

    Verifique se a VM está no estado Running. Se a VM solicitar mais recursos de computação do que o host pode fornecer, a VM não poderá ser iniciada. Se a VM não estiver no estado Running, verifique o manifesto do recurso VirtualMachine e a disponibilidade do recurso de computação no host.

    O exemplo de saída a seguir mostra a VM em um estado Running

    NAME   STATUS    AGE   IP
    vm1    Running   1m    192.168.2.72
    
  7. Veja informações detalhadas sobre uma VM usando kubectl describe gvm:

    kubectl describe gvm VM_NAME
    

    Substitua VM_NAME pelo nome da VM que você editou.

    O exemplo de saída a seguir mostra as informações condensadas de uma VM, com uma alteração no número de vCPUs aplicadas:

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Compute:
        Cpu:
          Vcpus:  4
    ...
    

Para mais informações, veja como criar VMs com configurações específicas de computação de vCPU e memória.

Editar recursos de disco

Se os requisitos de armazenamento mudarem, será possível adicionar ou remover discos virtuais de uma VM. Para editar os discos anexados à sua VM, siga estas etapas:

  1. Pare a VM que você quer editar:

    kubectl virt stop VM_NAME
    

    Substitua VM_NAME pelo nome da VM que você quer interromper.

  2. Use kubectl para editar a VM:

    kubectl edit gvm VM_NAME
    

    Substitua VM_NAME pelo nome da VM que você quer iniciar.

  3. No editor, atualize a seção spec.disks para anexar ou desanexar discos.

    Por exemplo, o exemplo de manifesto VirtualMachine a seguir mostra que apenas um disco de inicialização está anexado à VM:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      disks:
        - boot: true
          virtualMachineDiskName: vm1-boot-dv
      ...
    

    Se você quiser adicionar um disco vazio, atualize a configuração do disco no editor, conforme mostrado no exemplo a seguir:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      disks:
        - boot: true
          virtualMachineDiskName: vm1-boot-dv
        - virtualMachineDiskName: DISK_NAME
      ...
    

    Substitua DISK_NAME pelo nome do disco a ser anexado.

  4. Salve e feche o manifesto da VM.

  5. Inicie a VM que você editou:

    kubectl virt start VM_NAME
    

    Substitua VM_NAME pelo nome da VM que você editou.

  6. Verifique o STATUS da sua VM:

    kubectl get gvm VM_NAME
    

    Verifique se a VM está no estado Running. Se a VM solicitar uma StorageClass ou atribuição de disco que o host não possa fornecer, a VM não será iniciada. Se a VM não estiver no estado Running, verifique os manifestos de recursos de VirtualMachine e VirtualMachineDisk e o suporte ao armazenamento do host.

  7. Veja informações detalhadas sobre uma VM usando kubectl describe gvm:

    kubectl describe gvm VM_NAME
    

    Substitua VM_NAME pelo nome da VM que você editou.

    O exemplo de saída a seguir mostra as informações condensadas de uma VM, com uma alteração nos discos anexados aplicados com êxito:

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Disks:
        Name:  vm1-boot-dv
        Name:  data-disk-01
    ...
    

Para mais informações, veja como criar e gerenciar discos.

Editar recursos de rede

À medida que sua infraestrutura é alterada, talvez seja necessário alterar a configuração de rede de uma VM. Por exemplo, é possível conectar a VM a uma rede virtual diferente ou atribuir manualmente um endereço IP. Para editar a configuração de rede de uma VM, siga estas etapas:

  1. Pare a VM que você quer editar:

    kubectl virt stop VM_NAME
    

    Substitua VM_NAME pelo nome da VM que você quer interromper.

  2. Use kubectl para editar a VM:

    kubectl edit gvm VM_NAME
    

    Substitua VM_NAME pelo nome da VM que você quer iniciar.

  3. No editor, atualize as configurações de rede que você quer mudar.

    Por exemplo, o manifesto de amostra VirtualMachine a seguir mostra que a VM se conecta a uma rede chamada backend-vlan100 e usa DHCP porque nenhum endereço IP está definido:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      interfaces:
        - name: eth0
          networkName: backend-vlan100
          default: true
    ...
    

    Se você quiser alterar a rede a que a VM se conecta ou atribuir um endereço IP manual, atualize a configuração de rede no editor, conforme mostrado no exemplo a seguir:

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      interfaces:
        - name: eth0
          networkName: NETWORK_NAME
            ipAddresses:
              - IP_ADDRESS
          default: true
    ...
    

    Substitua NETWORK_NAME pelo nome da rede a que se conectar ou adicione a seção ipAddresses e especifique o IP_ADDRESS a ser usado pela VM.

  4. Salve e feche o manifesto da VM.

  5. Inicie a VM que você editou:

    kubectl virt start VM_NAME
    

    Substitua VM_NAME pelo nome da VM que você editou.

  6. Verifique o STATUS da sua VM:

    kubectl get gvm VM_NAME
    

    Verifique se a VM está no estado Running. Se a VM solicitar uma conexão de rede que o host não possa fornecer, a VM não será iniciada. Se a VM não estiver no estado Running, verifique o manifesto do recurso de VirtualMachine e o suporte à rede do host.

  7. Veja informações detalhadas sobre uma VM usando kubectl describe gvm:

    kubectl describe gvm VM_NAME
    

    Substitua VM_NAME pelo nome da VM que você editou.

    O exemplo de saída a seguir mostra as informações condensadas de uma VM, com uma mudança na configuração de rede e endereço IP aplicada com sucesso:

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Compute:
      Interfaces:
        Name:          eth0
        Network Name:  backend-vlan200
    ...
    Status:
      ...
      Interfaces:
        Dns Config:
          Nameservers:
            8.8.8.8
        gateway4:  10.200.0.9
        Ip Addresses:
          10.200.0.22/24
        Mac Address:    22:b4:e3:d2:ef:fb
        Name:           eth0
        Resource Name:  vm1-eth0-f2468
    ...
    

Para saber mais, veja como criar e gerenciar redes virtuais.

A seguir