Configure as políticas de despejo para VMs no Google Distributed Cloud

Este documento destina-se a administradores de plataformas que executam máquinas virtuais (VMs) no Google Distributed Cloud. Este documento mostra como configurar a política de despejo que controla a forma como as VMs que usam o tempo de execução de VMs no GDC podem migrar automaticamente para outros anfitriões durante eventos de manutenção. Estas definições de configuração permitem que as VMs continuem a ser executadas noutros anfitriões quando atualiza um cluster ou realiza manutenção num anfitrião.

Antes de começar

Para concluir este documento, precisa de aceder ao cluster da versão 1.12.0 (anthosBareMetalVersion: 1.12.0) ou superior do Google Distributed Cloud. Pode usar qualquer tipo de cluster capaz de executar cargas de trabalho. Se necessário, experimente o Google Distributed Cloud no Compute Engine ou consulte a vista geral da criação de clusters.

Definições da política de despejo

O Google Distributed Cloud permite-lhe configurar o comportamento dos nós quando faz atualizações de clusters ou coloca nós no modo de manutenção. O tempo de execução da VM no GDC usa uma política de despejo que controla a forma como o cluster processa as VMs que são executadas durante estes eventos.

Quando ativado, o tempo de execução da VM no GDC usa a migração em direto para mover as cargas de trabalho da VM para outro anfitrião por predefinição. Este comportamento minimiza a potencial interrupção das cargas de trabalho da VM. Com a migração em direto, as VMs migradas movem-se de um anfitrião para outro sem interrupções no SO convidado.

É possível configurar as seguintes definições da política de despejo:

Propriedade Predefiniçã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 este valor estiver definido como LiveMigrate, o tempo de execução da VM no GDC tenta migrar qualquer VM migrável de um nó para a remover. A VM é colocada noutro nó no cluster e continua a ser executada.

Se este valor estiver definido como Restart, o tempo de execução da VM no GDC não tenta migrar VMs. Em alternativa, as VMs são paradas quando o nó é colocado no modo de manutenção e as VMs são iniciadas novamente quando o nó é retirado do modo de manutenção. A VM não está disponível durante o evento de manutenção do anfitrião.

Quando escolhe a estratégia LiveMigrate, o tempo de execução da VM no GDC recorre à estratégia Restart para VMs não migráveis.

maxMigrationAttemptsPerVM

Esta definição controla o número máximo de tentativas de migração que podem ocorrer para uma determinada VM antes de a estratégia Restart ser aplicada.

Esta definição é ignorada se evictionStrategy estiver definido como Restart.

migrationTargetInitializationTimeout

Esta definição controla o tempo máximo que uma migração pode demorar a iniciar antes de ser considerada como tendo falhado. Uma migração que demore demasiado tempo a iniciar-se é contabilizada para o orçamento de migração falhada de uma carga de trabalho de VM.

Esta definição é ignorada se evictionStrategy estiver definido como Restart.

Ative e configure a política de remoção

Para usar a política de despejo no VM Runtime no GDC, a definição evictionPolicy tem de ser definida no objeto VMRuntime do cluster. Esta definição está ativada por predefinição. Se fizer a atualização a partir de uma versão anterior, tem de ativar esta definição manualmente.

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

Para ativar e configurar a política de despejo, conclua os seguintes passos:

  1. Edite o recurso personalizado VMRuntime:

    kubectl edit vmruntime vmruntime
    
  2. Adicione ou atualize a secção evictionPolicy com um objeto vazio para usar as definições da política de remoção predefinidas ou adicione as definições pretendidas:

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

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

    Os exemplos de manifestos seguintes mostram como ativar a migração em direto de VMs ou reiniciar as VMs no mesmo anfitrião após a conclusão da manutenção:

    Migre ao vivo

    A política de despejo de exemplo seguinte permite a migração em direto de VMs. O cluster pode tentar novamente a migração em direto até 3 vezes, com um limite de tempo de 30 segundos no processo de cada vez para iniciar:

    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 seguinte política de despejo de exemplo não tenta fazer a migração de nenhuma VM durante o despejo. As VMs são paradas no respetivo anfitrião atual e são iniciadas novamente quando o anfitrião termina 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. Guarde e feche o recurso personalizado VMRuntime no editor.

    O tempo de execução da VM no GDC aplica agora a política de despejo às VMs no seu cluster.

O que se segue?