Ativar ou desativar o Anthos VM Runtime

Neste documento, mostramos como ativar ou desativar o Anthos VM Runtime atualizando o recurso personalizado VMRuntime ou executando comandos bmctl.

Antes de começar

Para ativar ou desativar o Anthos VM Runtime, você precisa acessar os seguintes recursos e ferramentas:

Ativar o ambiente de execução da VM do Anthos

O Anthos VM Runtime é instalado automaticamente em clusters do Anthos na versão bare metal 1.10 ou mais recente, mas é desativado por padrão. Antes de executar recursos da VM nos clusters do Anthos em bare metal, ative o ambiente de execução da VM do Anthos.

bmctl

  • Para ativar o ambiente de execução, use a ferramenta bmctl:

    bmctl enable vmruntime --kubeconfig KUBECONFIG_PATH
    

    Forneça o caminho para o arquivo kubeconfig do cluster. Os clusters do Anthos em bare metal geram o arquivo kubeconfig na estação de trabalho de administrador quando você cria um cluster. Por padrão, o caminho é bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig.

    Se o Anthos VM Runtime já estiver ativado, o comando retornará um erro.

Configurações adicionais, como emulação ou formato de imagem, podem ser definidas editando o recurso personalizado VMRuntime.

Recurso personalizado

Para ativar o ambiente de execução, atualize o recurso personalizado VMRuntime. Esse recurso personalizado é instalado por padrão.

  1. Edite o recurso personalizado VMRuntime:

    kubectl edit vmruntime
    
  2. Defina enabled:true na especificação:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: true
      # useEmulation defaults to "false" if not set.
      useEmulation: true
      # vmImageFormat defaults to "qcow2" if not set.
      vmImageFormat: qcow2
    

    Na seção spec anterior, os seguintes valores podem ser definidos:

    • enabled: definido como verdadeiro para ativar o Anthos VM Runtime
    • useEmulation: se o nó não for compatível com a virtualização por hardware ou você não tiver certeza, defina o valor como "true". Se disponível, a virtualização de hardware oferece um desempenho melhor do que a emulação de software. O campo useEmulation terá false como padrão se não for especificado.
    • vmImageFormat: compatível com dois valores de formato de imagem de disco: raw e qcow2. Se você não definir vmImageFormat, o ambiente de execução da VM do Anthos usará o formato de imagem de disco raw para criar VMs. O formato raw pode melhorar o desempenho em relação ao qcow2, uma cópia no formato de gravação, mas pode usar mais disco. Para mais informações sobre os formatos de imagem da VM, consulte Formatos de arquivo de imagem de disco na documentação do QEMU.
  3. Salve o recurso personalizado no seu editor.

  4. Verifique se o recurso personalizado VMRuntime está ativado:

    kubectl describe vmruntime vmruntime
    

    Os detalhes do recurso personalizado VMRuntime incluem uma seção Status. O ambiente de execução da VM do Anthos está ativado e funcionando quando VMRuntime.Status.Ready é exibido como true.

Desativar ambiente de execução de VM do Anthos

Quando não precisar mais usar o Anthos VM Runtime, desative esse recurso.

bmctl

  • Para desativar o ambiente de execução, use a ferramenta bmctl:

    bmctl disable vmruntime --kubeconfig KUBECONFIG_PATH \
      --force=true
    

    Forneça o caminho para o arquivo kubeconfig do cluster e os valores das seguintes opções de configuração:

    • --force: defina como true para confirmar que você quer excluir os recursos de VM atuais. O valor padrão é false.

Recurso personalizado

Para desativar o ambiente de execução, atualize o recurso personalizado VMRuntime:

  1. Edite o recurso personalizado VMRuntime:

    kubectl edit vmruntime
    
  2. Defina enabled:false na especificação:

    apiVersion: vm.cluster.gke.io/v1`
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: false
      useEmulation: true
      vmImageFormat: qcow2
    
  3. Salve a especificação atualizada de recursos personalizados no editor.

  4. Para verificar se o recurso personalizado VMRuntime está desativado, veja os pods executados no namespace vm-system:

    kubectl get pods --namespace vm-system
    

    O ambiente de execução da VM do Anthos é desativado quando apenas os pods que pertencem à implantação de vmruntime-controller-manager estão em execução no namespace.

Entenda o comportamento para executar VMs

A anotação baremetal.cluster.gke.io/vmrumtime-force-disable pode ser usada no recurso do ambiente de execução da VM do Anthos para definir o comportamento quando o ambiente de execução é desativado enquanto as VMs estão em execução no cluster.

O exemplo a seguir mostra que o valor dessa anotação é definido como false por padrão:

  // VM runtime yaml file
  apiVersion: vm.cluster.gke.io/v1
  kind: VMRuntime
  metadata:
    annotations:
      baremetal.cluster.gke.io/vmrumtime-force-disable: "false"
    name: vmruntime
  [...]

Quando essa anotação é definida como false, o ambiente de execução da VM do Anthos tenta proteger as VMs em execução. Exclua todas as VMs em execução antes que o ambiente de execução da VM do Anthos seja desativado ou especifique o parâmetro --force=true com o comando bmctl disable vmruntime, conforme mostrado na seção anterior.

A tabela a seguir explica o que acontece com as VMs em execução quando essa anotação está definida como true ou false e se você especifica o parâmetro --force=true ou não:

Estado do cluster --force parameter vmrumtime-force-disable annotation Comportamento
Nenhuma VM N/A N/A Desativar ambiente de execução de VM do Anthos.
VMs atuais Verdadeiro Verdadeiro Exclua todas as VMs em execução e os recursos relacionados. Desative o Anthos VM Runtime.
Verdadeiro Falso Exclua todas as VMs em execução e os recursos relacionados. Desative o Anthos VM Runtime.
Falso Verdadeiro Solicitação para excluir VMs em execução e recursos relacionados. Quando todas as VMs em execução forem excluídas, desative o Anthos VM Runtime.
Falso Falso Não exclua nenhuma VM atual que esteja em execução. Não desative o Anthos Runtime do Anthos. O comando bmctl retorna um erro.

A seguir