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:
Edite o recurso personalizado
VMRuntime
:kubectl edit vmruntime vmruntime
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, comoevictionPolicy: 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
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.