Configurar as políticas de remoção de VMs no GKE em Bare Metal

Este documento é destinado a administradores de plataformas que executam máquinas virtuais (VMs) no GKE em Bare Metal. Neste documento, mostramos como configurar a política de remoção que controla como as VMs que usam o ambiente de execução de VMs no Google Distributed Cloud podem ser migradas automaticamente para outros hosts durante eventos de manutenção. Essas configurações permitem que as VMs continuem em execução em outros hosts quando você fizer upgrade de um cluster ou executar a manutenção em um host.

Antes de começar

Para concluir este documento, acesse os clusters do GKE em Bare Metal versão 1.12.0 (anthosBareMetalVersion: 1.12.0) ou superior. Use qualquer tipo de cluster capaz de executar cargas de trabalho. Se necessário, teste o GKE em Bare Metal no Compute Engine ou consulte a visão geral da criação de clusters.

Configurações da política de remoção

O GKE em Bare Metal permite configurar o comportamento do nó ao fazer upgrades de cluster ou colocar nós no modo de manutenção. O ambiente de execução de VMs no Google Distributed Cloud usa uma política de remoção que controla como o cluster processa as VMs executadas durante esses eventos.

Quando ativado, o ambiente de execução de VM no Google Distributed Cloud usa a migração em tempo real para mover cargas de trabalho da VM para outro host por padrão. Esse comportamento minimiza a possível interrupção nas cargas de trabalho da VM. Com a migração em tempo real, as VMs que podem ser migradas mudam de um host para outro sem interromper o SO convidado.

As seguintes configurações da política de remoção podem ser definidas:

Propriedade Padrão Valores válidos
evictionStrategy LiveMigrate LiveMigrate, Restart
maxMigrationAttemptsPerVM 3 Números inteiros no intervalo [1,5]
migrationTargetInitializationTimeout 30s Qualquer string de duração válida, como 1m, 2h ou 1h30m

evictionStrategy

Se esse valor for definido como LiveMigrate, o ambiente de execução de VMs no Google Distributed Cloud vai tentar migrar qualquer VM que pode ser migrada de um nó para removê-la. A VM é colocada em outro nó no cluster e continua em execução.

Se esse valor for definido como Restart, o ambiente de execução de VMs no Google Distributed Cloud não vai tentar migrar VMs. Em vez disso, as VMs são interrompidas quando o nó é colocado no modo de manutenção e são iniciadas novamente quando o nó é retirado do modo de manutenção. A VM fica indisponível durante o evento de manutenção do host.

Quando você escolhe a estratégia LiveMigrate, o ambiente de execução de VMs no Google Distributed Cloud volta à estratégia Restart para VMs não migráveis.

maxMigrationAttemptsPerVM

Essa configuração controla o número máximo de tentativas de migração que podem ocorrer em uma determinada VM antes que a estratégia Restart seja aplicada.

Esta configuração será ignorada se evictionStrategy for definido como Restart.

migrationTargetInitializationTimeout

Essa configuração controla a quantidade máxima de tempo que uma migração pode levar para iniciar antes de ser considerada falha. Uma migração que demora muito para ser iniciada é contabilizada no orçamento de migração com falha para uma carga de trabalho da VM.

Esta configuração será ignorada se evictionStrategy for definido como Restart.

Ativar e configurar a política de remoção

Para usar a política de remoção no ambiente de execução de VMs no Google Distributed Cloud, a configuração evictionPolicy precisa ser definida no objeto VMRuntime do cluster. Essa configuração é ativada por padrão nos clusters do Anthos na versão bare metal 1.12 e mais recentes. Se você fizer upgrade de uma versão anterior, ative essa configuração manualmente.

Um objeto vazio, como evictionPolicy: {}, ativa a política de remoção com configurações padrão. Para alterar o comportamento padrão, adicione outras opções de configuração ao objeto evictionPolicy.

Para ativar e configurar a política de remoção, siga estas etapas:

  1. Edite o recurso personalizado VMRuntime:

    kubectl edit vmruntime vmruntime
    
  2. Adicione ou atualize a seção evictionPolicy com um objeto vazio para usar as configurações padrão da política de remoção ou adicione as configurações desejadas:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      disableCDIUploadProxyVIP: false
      enabled: true
      evictionPolicy: {}
      useEmulation: false
    

    Se o evictionPolicy não for preenchido, como evictionPolicy: null ou não estiver incluído no manifesto, nenhuma ação especial será realizada. As VMs são despejadas à força.

    Os manifestos de exemplo a seguir mostram como ativar a migração em tempo real de VMs ou reiniciar as VMs no mesmo host após a conclusão da manutenção:

    Migração em tempo real

    A política de remoção de exemplo a seguir permite a migração em tempo real de VMs. O cluster pode tentar novamente a migração em tempo real até três vezes, com um tempo limite de 30 segundos no processo sempre que for iniciado:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      disableCDIUploadProxyVIP: false
      enabled: true
      evictionPolicy:
        evictionStrategy: LiveMigrate
        maxMigrationAttemptsPerVM: 3
        migrationTargetInitializationTimeout: 30s
      useEmulation: false
    

    Reiniciar

    A política de remoção de exemplo a seguir não tenta migrar nenhuma VM durante a remoção. As VMs são interrompidas no host atual e começam novamente quando o host conclui o evento de manutenção:

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      disableCDIUploadProxyVIP: false
      enabled: true
      evictionPolicy:
        evictionStrategy: Restart
      useEmulation: false
    
  3. Salve e feche o recurso personalizado VMRuntime no editor.

    O ambiente de execução de VMs no Google Distributed Cloud agora aplica a política de remoção às VMs no seu cluster.

A seguir