Grupos de nós de escalonamento automático


Se você usar nós de locatário individual para suas cargas de trabalho, poderá gerenciar automaticamente os tamanhos dos grupos de nós usando o escalonador automático de grupo de nós. Você pode configurar o escalonamento automático ao criar um grupo de nós ou após criar um.

O escalonador automático pode ajudá-lo a gerenciar automaticamente os tamanhos dos seus grupos de nós de locatário individual:

  • Aumentar o tamanho de um grupo de nós quando não houver capacidade suficiente para outra instância de máquina virtual (VM) nesse grupo de nós. Depois que o escalonador automático aumenta o tamanho do grupo de nós, as VMs são agendadas de forma transparente.

  • Diminuir o tamanho de um grupo de nós quando há nós vazios, o que impede que você pague por nós de locatário individual não utilizados.

Ao escalar um grupo de nós, o escalonador automático considera a capacidade necessária para a VM que está sendo agendada, a capacidade livre nos nós que ele está direcionando e a política de escalonamento automático do grupo de nós. A capacidade necessária baseia-se apenas no tamanho da VM. A capacidade livre é estimada com base no tamanho do nó, nas VMs já agendadas nele e na taxa de superalocação de CPU opcional.

O diagrama a seguir mostra:

  1. O escalonador automático do grupo de nós é ampliado adicionando um novo nó a um grupo de nós em resposta à implantação de uma VM em um grupo de nós sem nós vazios.

  2. O dimensionamento automático do grupo de nós removendo um nó vazio de um grupo de nós de locatário individual.

Autoescalador de grupo de nós gerenciando o tamanho do grupo de nós.

Modos de escalonamento automático

Por padrão, o escalonador automático não está habilitado em grupos de nós. Quando o escalonador automático não estiver habilitado, você deverá gerenciar manualmente os tamanhos dos seus grupos de nós. Se você habilitar o escalonador automático em um grupo de nós, poderá especificar que o escalonador automático aumente e diminua o tamanho do grupo de nós (aumenta e amplia) ou que apenas aumenta o tamanho do grupo (apenas aumenta).

Escalar e escalar

Nesse modo, o escalonador automático do grupo de nós aumenta (aumenta a escala) e diminui (aumenta a escala) o tamanho dos seus grupos de nós. Para este modo, você deve especificar um tamanho máximo e um tamanho mínimo para o grupo de nós. O escalonador automático não dimensionará o tamanho do grupo de nós acima do máximo especificado ou abaixo do mínimo especificado.

A expansão é acionada quando o agendamento de uma VM falha devido à falta de capacidade. Para resolver esse problema, um novo nó é adicionado ao grupo e a operação é tentada novamente.

A expansão é acionada quando um nó permanece vazio por um período de tempo. Um nó vazio é o resultado da exclusão ou migração de uma VM do grupo de nós. Se a política de escalonamento automático do grupo de nós permitir, o nó vazio será agendado para remoção após um período de estabilização . O período de estabilização garante que o nó ainda esteja disponível caso você precise usá-lo.

Apenas escalar

Com este modo, o autoescalador aumenta o tamanho do grupo de nós em resposta a pedidos para agendar VMs, mas não remove nós vazios dos grupos de nós. O Google recomenda esse modo para aumentar monotonicamente cargas de trabalho ou cargas de trabalho que exigem afinidade de servidor físico, como cargas de trabalho BYOL , que exigem licenças para residir no mesmo servidor físico.

Você deverá usar esse modo se seus grupos de nós estiverem configurados com a política de manutenção Migrar dentro do grupo de nós .

Faixa de tamanho de um grupo de nós

Ao ativar o escalonador automático, você define o intervalo de tamanho do grupo de nós especificando um valor mínimo e máximo para o tamanho do grupo de nós.

Se você não especificar um valor para o tamanho mínimo, o escalonador automático definirá o tamanho mínimo como zero (0). Se você especificar um valor para o tamanho mínimo, ele deverá ser um número inteiro maior ou igual a 0 e deverá ser menor ou igual ao tamanho máximo.

Você deve especificar um valor para o tamanho máximo do grupo de nós. O valor deve ser um número inteiro maior ou igual a 0 e menor ou igual a 100, que é o tamanho máximo permitido para um grupo de nós de locatário individual, e o valor deve ser maior ou igual ao valor mínimo especificado.

Para acomodar cargas de trabalho que podem exceder o tamanho máximo de 100 para um grupo de nós, crie vários grupos de nós com rótulos de afinidade correspondentes, por exemplo, workload:in:my-autoscaled-node-groups . Em seguida, agende VMs usando esse rótulo de afinidade e habilite o escalonamento automático em cada grupo para criar um grupo de grupos de nós com escalonamento dinâmico.

Disponibilidade

Você só pode usar o escalonador automático de nó de locatário individual em regiões que oferecem suporte a nós de locatário individual .

Antes de começar

  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Habilitar o escalonador automático do grupo de nós

Configure o escalonamento automático em um novo grupo de nós.

gcloud

O exemplo abaixo mostra como usar o comando node-groups create para ativar o escalonador automático ao criar um grupo de nós. Para adicionar um escalonador automático a um grupo de nós existente, use o comando node-groups update .

gcloud compute sole-tenancy node-groups create group-name \
    --node-template template-name \
    --target-size size \
    --maintenance-policy maintenance-policy \
    --zone zone \
    --autoscaler-mode mode \
    --max-nodes max-nodes \
    --min-nodes min-nodes

Substitua o seguinte:

  • group-name : nome do grupo de nós a ser criado.
  • template-name : nome do modelo de nó a partir do qual o grupo de nós será criado.
  • size : número inicial desejado de nós no grupo de nós.
  • maintenance-policy : especifica se as VMs migram e se são reiniciadas durante eventos de manutenção do host. Defina-o com um dos seguintes valores:
    • default : VMs migram ao vivo para um novo nó.
    • migrate-within-node-group : as VMs migram ao vivo para outro nó no grupo de nós.
    • restart-in-place : as VMs são reiniciadas no mesmo nó após serem encerradas devido a um evento de manutenção.
  • zone : Zona na qual criar o grupo de nós.
  • mode : modo para o escalonador automático neste grupo de nós. Defina um dos seguintes valores:
    • off : desativa o escalonador automático.
    • on : ativa a ampliação e redução.
    • only-scale-out : permite apenas a expansão. Você deverá usar esse modo se seus grupos de nós estiverem configurados para reiniciar suas VMs hospedadas em servidores mínimos.
  • max-nodes : tamanho máximo do grupo de nós. Defina um valor menor ou igual a 100 e maior ou igual a min-nodes .
  • min-nodes : Tamanho mínimo do grupo de nós e deve ser um valor inteiro menor ou igual a max-nodes . O valor padrão é 0.

DESCANSAR

O exemplo a seguir mostra como usar o comando nodeGroups.insert para ativar o escalonador automático ao criar um grupo de nós. Para adicionar um escalonador automático a um grupo de nós existente, use o comando nodeGroups.patch .

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/nodeGroups?initialNodeCount=initial-node-count

  {
    "name": "group-name",
    "nodeTemplate": "template-name",
    "autoscalingPolicy": {
      "mode": "mode",
      "min_nodes": min-nodes,
      "max_nodes": max-nodes
    }
    "maintenancePolicy": maintenance-policy
  }

Substitua o seguinte:

  • project-id : ID do projeto ao qual será adicionado um grupo de nós com um escalonador automático.
  • zone : Zona na qual criar o novo grupo de nós.
  • initial-node-count : obrigatório ao criar o grupo de nós. Isso especifica o número inicial de nós no grupo de nós. Se o valor de min-nodes for maior que a contagem inicial de nós, o tamanho do grupo de nós será ampliado para o valor de min-nodes .
  • group-name : nome do novo grupo de nós.
  • template-name : nome do modelo de nó a partir do qual o grupo de nós será criado.
  • mode : modo para o escalonador automático neste grupo de nós. Defina como um dos seguintes:
    • OFF : Desativa o escalonador automático.
    • ON : Ativa a ampliação e redução.
    • ONLY_SCALE_OUT : permite apenas a expansão. Você deverá usar esse modo se seus grupos de nós estiverem configurados para reiniciar suas VMs hospedadas em servidores mínimos.
  • max-nodes : tamanho máximo do grupo de nós. Defina um valor menor ou igual a 100 e maior ou igual a min-nodes .
  • min-nodes : Tamanho mínimo do grupo de nós e deve ser um valor inteiro menor ou igual a max-nodes . O valor padrão é 0.
  • maintenance-policy : especifica se as VMs migram e se são reiniciadas durante eventos de manutenção do host. Defina isso como um dos seguintes valores:
    • DEFAULT : as VMs migram ao vivo para um novo nó.
    • MIGRATE_WITHIN_NODE_GROUP : as VMs migram ao vivo para outro nó no grupo de nós.
    • RESTART_IN_PLACE : as VMs são reiniciadas no mesmo nó após serem encerradas devido a um evento de manutenção.

Atualizar configurações do escalonador automático

Altere as configurações do escalonador automático em um grupo de nós atualizando o modo do escalonador automático ou atualizando o tamanho mínimo e máximo do grupo de nós.

gcloud

O exemplo a seguir mostra como usar o comando node-groups update para alterar o modo do escalonador automático em um grupo de nós.

gcloud compute sole-tenancy node-groups update name \
    --autoscaler-mode mode \
    --max-nodes max-nodes \
    --min-nodes min-nodes

Substitua o seguinte:

  • name : nome do grupo de nós no qual alterar o modo do escalonador automático.
  • mode : modo para o escalonador automático neste grupo de nós. Defina como um dos seguintes:
    • off : desativa o escalonador automático.
    • on : ativa a ampliação e redução.
    • only-scale-out : permite apenas a expansão. Você deverá usar esse modo se seus grupos de nós estiverem configurados para reiniciar suas VMs hospedadas em servidores mínimos.
  • max-nodes : tamanho máximo do grupo de nós. Defina um valor menor ou igual a 100 e maior ou igual a min-nodes .
  • min-nodes : Tamanho mínimo do grupo de nós e deve ser um valor inteiro menor ou igual a max-nodes . O valor padrão é 0.

DESCANSAR

O exemplo a seguir mostra como usar o comando nodeGroups.patch para alterar o modo de um escalonador automático em um grupo de nós.

PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name

{
  "nodeTemplate": "template-name",
  "autoscalingPolicy": {
    "mode": "mode",
    "minSize": min-nodes,
    "maxSize": max-nodes
  }
}

Substitua o seguinte:

  • project-id : ID do projeto que contém o grupo de nós para o qual alterar o modo do escalonador automático.
  • group-zone : zona que contém o grupo de nós para o qual alterar o modo do escalonador automático.
  • group-name : nome do grupo de nós para o qual alterar o modo do escalonador automático.
  • template-name : nome do modelo de nó a partir do qual o grupo de nós foi criado.
  • mode : modo para o escalonador automático neste grupo de nós. Defina como um dos seguintes:

    • OFF : Desativa o escalonador automático.
    • ON : Ativa a ampliação e redução.

    • ONLY_SCALE_OUT : permite apenas a expansão. Você deverá usar esse modo se seus grupos de nós estiverem configurados com a política de manutenção Migrar dentro do grupo de nós .

  • max-nodes : tamanho máximo do grupo de nós. Defina um valor menor ou igual a 100 e maior ou igual a min-nodes .

  • min-nodes : Tamanho mínimo do grupo de nós e deve ser um valor inteiro menor ou igual a max-nodes . O valor padrão é 0.

Atualizar manualmente o tamanho dos grupos de nós com escalonamento automático

Quando o escalonador automático está habilitado, o tamanho do grupo de nós é gerenciado automaticamente, mas você pode agendar ou remover VMs nesse grupo de nós para atualizar manualmente o tamanho do grupo de forma eficaz.

Para diminuir manualmente o tamanho de um grupo de nós com escala automática, exclua as VMs do nó até que ele esteja vazio. Quando o nó está vazio, o escalonador automático remove o nó vazio, o que diminui o tamanho do grupo de nós.

Para aumentar manualmente o tamanho de um grupo de nós com escala automática, configure o tamanho mínimo do grupo para um valor maior que o tamanho atual. Quando o tamanho mínimo de um grupo é definido como um valor maior que o tamanho atual, o escalonador automático amplia o tamanho do grupo para o tamanho mínimo recém-especificado.

Quando os grupos de nós são definidos apenas para expansão horizontal, o escalonador automático gerencia automaticamente os aumentos no tamanho do grupo e desabilita os aumentos manuais no tamanho do grupo. Com esta configuração, você pode diminuir o tamanho de um grupo removendo VMs de um nó até que esse nó esteja vazio e, em seguida, você pode remover o nó vazio.

Desative o escalonador automático

Quando você não precisar mais usar o escalonador automático para gerenciar automaticamente os tamanhos dos seus grupos de nós ou se precisar gerenciar manualmente os tamanhos dos seus grupos de nós, desative o escalonador automático.

gcloud

gcloud compute sole-tenancy node-groups update name \
    --autoscaler-mode OFF

Substitua name pelo nome do grupo de nós do qual deseja remover a política de escalonamento automático.

DESCANSAR

O exemplo a seguir mostra como usar o comando nodeGroups.patch para desligar um escalonador automático em um grupo de nós.

PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name

{
  "nodeTemplate": "template-name",
  "autoscalingPolicy": {
    "mode": "mode"
  }
}

Substitua o seguinte:

  • project-id : ID do projeto que contém o grupo de nós para o qual alterar o modo do escalonador automático.
  • group-zone : zona que contém o grupo de nós para o qual alterar o modo do escalonador automático.
  • group-name : nome do grupo de nós para o qual alterar o modo do escalonador automático.
  • template-name : nome do modelo de nó a partir do qual o grupo de nós foi criado.
  • mode : modo para o escalonador automático neste grupo de nós. Defina como OFF para desabilitar o escalonador automático neste grupo de nós.

Ver atividade do escalonador automático

No console do Google Cloud, visualize o escalonador automático ajustando os tamanhos dos seus grupos de nós. O console do Google Cloud mostra o tamanho atual do grupo de nós e, se o escalonador automático estiver ajustando o tamanho do grupo, você também poderá ver o tamanho alvo do grupo de nós.

Console

  1. No console do Google Cloud, acesse a página Nós de locatário individual .

    Acesse nós de locatário individual

  2. Clique em Grupos de nós .

  3. Veja o número de nós em cada grupo de nós e, se o Compute Engine estiver escalonando o grupo de nós, você também poderá visualizar o número alvo de nós.

O que vem a seguir