Partilhar via


Dimensionamento automático do HDInsight em clusters AKS

Nota

Vamos desativar o Azure HDInsight no AKS em 31 de janeiro de 2025. Antes de 31 de janeiro de 2025, você precisará migrar suas cargas de trabalho para o Microsoft Fabric ou um produto equivalente do Azure para evitar o encerramento abrupto de suas cargas de trabalho. Os clusters restantes na sua subscrição serão interrompidos e removidos do anfitrião.

Apenas o apoio básico estará disponível até à data da reforma.

Importante

Esta funcionalidade está atualmente em pré-visualização. Os Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure incluem mais termos legais que se aplicam a funcionalidades do Azure que estão em versão beta, em pré-visualização ou ainda não disponibilizadas para disponibilidade geral. Para obter informações sobre essa visualização específica, consulte Informações de visualização do Azure HDInsight no AKS. Para perguntas ou sugestões de recursos, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para obter mais atualizações na Comunidade do Azure HDInsight.

O dimensionamento de qualquer cluster para atender ao desempenho do trabalho e gerenciar os custos com antecedência é sempre complicado e difícil de determinar! Um dos benefícios lucrativos da construção de data lake house sobre Cloud é sua elasticidade, o que significa usar o recurso de dimensionamento automático para maximizar a utilização dos recursos disponíveis. O dimensionamento automático com o Kubernetes é uma chave para estabelecer um ecossistema de custo otimizado. Com padrões de uso variados em qualquer empresa, pode haver variações nas cargas de cluster ao longo do tempo que podem levar a clusters subprovisionados (desempenho ruim) ou superprovisionados (custos desnecessários devido a recursos ociosos).

O recurso de dimensionamento automático oferecido no HDInsight no AKS pode aumentar ou diminuir automaticamente o número de nós de trabalho em seu cluster. O dimensionamento automático usa as métricas de cluster e a política de dimensionamento usadas pelos clientes.

Esse recurso é adequado para cargas de trabalho de missão crítica, que podem ter

  • Padrões de tráfego variáveis ou imprevisíveis e exigem SLAs de alto desempenho e escala ou
  • Agenda predeterminada para que os nós de trabalho necessários estejam disponíveis para executar com êxito os trabalhos no cluster.

O dimensionamento automático com o HDInsight em clusters AKS torna os clusters econômicos e elásticos no Azure.

Com o dimensionamento automático, os clientes podem reduzir a escala de clusters sem afetar as cargas de trabalho. Ele é habilitado com recursos avançados, como descomissionamento gracioso e período de resfriamento. Esses recursos permitem que os usuários façam escolhas informadas sobre a adição e remoção de nós com base na carga atual do cluster.

Como funciona

Esse recurso funciona dimensionando o número de nós dentro de limites predefinidos com base em métricas de cluster ou em um cronograma definido de operações de expansão e redução. Há dois tipos de condições para acionar eventos de dimensionamento automático: gatilhos baseados em limite para várias métricas de desempenho de cluster (chamados de dimensionamento baseado em carga) e gatilhos baseados em tempo (chamados de dimensionamento baseado em agenda).

O dimensionamento baseado em carga altera o número de nós no cluster, dentro de um intervalo definido, para garantir o uso ideal da CPU e minimizar o custo de execução.

O dimensionamento baseado em cronograma altera o número de nós em seu cluster com base em um cronograma de operações de expansão e redução.

Nota

A escala automática não suporta a alteração do tipo de SKU de um cluster existente.

Compatibilidade de cluster

A tabela a seguir descreve os tipos de cluster compatíveis com o recurso de dimensionamento automático e o que está disponível ou planejado.

Carga de trabalho Baseado em carga Com base no cronograma
Flink Planeado Sim
Trino Sim** Sim**
Spark Sim** Sim**

**O descomissionamento gracioso é configurável.

Métodos de dimensionamento

  • Dimensionamento baseado em programação:

    • Quando se espera que seus trabalhos sejam executados em horários fixos e por uma duração previsível ou quando você prevê baixo uso durante horários específicos do dia Por exemplo, ambientes de teste e desenvolvimento em horas pós-trabalho, trabalhos de fim de dia.

      Captura de tela mostrando como selecionar o dimensionamento baseado em agenda.

  • Escala baseada em carga:

    • Quando os padrões de carga flutuam substancialmente e de forma imprevisível durante o dia, por exemplo, o processamento de dados de pedidos com flutuações aleatórias nos padrões de carga com base em vários fatores.

      Captura de tela mostrando como selecionar o dimensionamento baseado em carga.

      Com a nova opção configurar regra de escala, agora você pode personalizar as regras de escala.

      Captura de tela mostrando como configurar a regra de escala no dimensionamento baseado em carga.

      Captura de tela mostrando como adicionar regras em configurar regras de escala para dimensionamento baseado em carga.

      Gorjeta

      • As regras de dimensionamento têm precedência quando uma ou mais regras são acionadas. Mesmo que apenas uma das regras para aumento de escala sugira que o cluster está subprovisionado, o cluster tentará aumentar a escala. Para que a redução de escala aconteça, nenhuma regra de aumento de escala deve ser acionada.

Condições de escala baseadas em carga

Quando as seguintes condições são detetadas, o dimensionamento automático emite uma solicitação de escala

Aumento vertical Redução de escala
Os núcleos alocados são superiores a 80% para um intervalo de sondagem de 5 minutos (período de verificação de 1 minuto) Os núcleos alocados são menores ou iguais a 20% para o intervalo de pesquisa de 5 minutos (período de verificação de 1 minuto)
  • Para aumentar a escala, o dimensionamento automático emite uma solicitação de expansão para adicionar o número necessário de nós. A expansão é baseada em quantos novos nós de trabalho são necessários para atender aos requisitos atuais de CPU e memória. Esse valor é limitado ao número máximo de nós de trabalho definidos.

  • Para redução de escala, o dimensionamento automático emite uma solicitação para remover alguns nós. As considerações de redução de escala incluem o número de pods por nó, os requisitos atuais de CPU e memória e os nós de trabalho, que são candidatos para remoção com base na execução atual do trabalho. A operação de redução de escala primeiro descomissiona os nós e, em seguida, os remove do cluster.

    Importante

    O mecanismo de regras de dimensionamento automático libera proativamente eventos antigos a cada 30 minutos para otimizar a memória do sistema. Como resultado, existe um limite superior de 30 minutos no intervalo da regra de escala. Para garantir o acionamento consistente e confiável de ações de dimensionamento, é imperativo definir o intervalo da regra de dimensionamento para um valor menor que o limite. Ao aderir a esta diretriz, você pode garantir um processo de dimensionamento suave e eficiente enquanto gerencia efetivamente os recursos do sistema.

Métricas de cluster

O dimensionamento automático monitora continuamente o cluster e coleta as seguintes métricas para o dimensionamento automático baseado em carga:

Métricas de cluster disponíveis para fins de dimensionamento

Métrico Description
Percentagem de Núcleos Disponíveis O número total de núcleos disponíveis no cluster em comparação com o número total de núcleos no cluster.
Percentagem de memória disponível A memória total (em MB) disponível no cluster em comparação com a quantidade total de memória no cluster.
Percentagem de núcleos alocados O número total de núcleos alocados no cluster em comparação com o número total de núcleos no cluster.
Percentagem de memória alocada A quantidade de memória alocada no cluster em comparação com a quantidade total de memória no cluster.

Por padrão, as métricas acima são verificadas a cada 300 segundos, também é configurável quando você personaliza o intervalo de sondagem com a opção personalizar escala automática. O dimensionamento automático toma decisões de aumento ou redução de escala com base nessas métricas.

Nota

Por padrão, a escala automática usa a calculadora de recursos padrão para o YARN for Apache Spark. O dimensionamento baseado em carga está disponível para Apache Spark Clusters.

Descomissionamento gracioso

As empresas precisam de maneiras de alcançar a escala de petabytes com o dimensionamento automático e desativar recursos normalmente quando eles não forem mais necessários. Nesse cenário, o recurso de descomissionamento gracioso é útil.

O descomissionamento gracioso permite que os trabalhos sejam concluídos mesmo após o dimensionamento automático ter acionado o descomissionamento dos nós de trabalho. Esse recurso permite que os nós continuem a ser provisionados até que os trabalhos sejam concluídos.

  • Trino : Os trabalhadores têm o Descomissionamento Gracioso ativado por padrão. O coordenador permite que o trabalhador que termina suas tarefas por um período de tempo configurado antes de remover o trabalhador do cluster. Você pode configurar o tempo limite usando o parâmetro shutdown.grace-periodTrino nativo ou na página de configuração do serviço de portal do Azure.

  • Apache Spark : A redução da escala pode afetar/interromper quaisquer trabalhos em execução no cluster. Se você habilitar as configurações de Descomissionamento Normal no portal do Azure, ele incorporará o Descomissionamento Normal de Nós YARN e garantirá que qualquer trabalho em andamento em um nó de trabalho seja concluído antes que o nó seja removido do cluster HDInsight no AKS.

Período de reflexão

Para evitar operações de aumento de escala contínuas, o mecanismo de dimensionamento automático aguarda um intervalo configurável antes de iniciar outro conjunto de operações de aumento de escala. O valor padrão é definido como 180 segundos

Nota

  • Em regras de escala personalizadas, nenhum gatilho de regra pode ter um intervalo de gatilho maior que 30 minutos. Depois que um evento de dimensionamento automático ocorre, o tempo de espera antes de aplicar outra política de dimensionamento.
  • O período de reflexão deve ser maior do que o intervalo da política, para que as métricas do cluster possam ser redefinidas.

Começar agora

  1. Para que o dimensionamento automático funcione, é necessário atribuir a permissão de proprietário ou colaborador ao MSI (usado durante a criação do cluster) no nível do cluster, usando o IAM no painel esquerdo.

  2. Consulte a ilustração a seguir e as etapas listadas sobre como adicionar atribuição de função

    Captura de tela mostrando como adicionar atribuição de função.

  3. Selecione adicionar atribuição de função,

    1. Tipo de atribuição: funções de administrador privilegiadas
    2. Função: Proprietário ou Colaborador
    3. Membros: escolha Identidade gerenciada e selecione a identidade gerenciada atribuída pelo usuário, que foi fornecida durante a fase de criação do cluster.
    4. Atribua a função.

Criar um cluster com escala automática baseada em agendamento

  1. Depois que o pool de clusters for criado, crie um novo cluster com a carga de trabalho desejada (no tipo Cluster) e conclua as outras etapas como parte do processo normal de criação do cluster.

  2. Na guia Configuração, ative a alternância de escala automática.

  3. Selecione Dimensionamento automático baseado em agendamento

  4. Selecione o seu fuso horário e, em seguida, clique em + Adicionar regra

  5. Selecione os dias da semana aos quais a nova condição deve ser aplicada.

  6. Edite a hora em que a condição deve entrar em vigor e o número de nós para os quais o cluster deve ser dimensionado.

    Captura de tela mostrando como começar a usar o dimensionamento automático baseado em agendamento.

    Nota

    • O usuário deve ter a função "proprietário" ou "colaborador" no MSI do cluster para que o dimensionamento automático funcione.
    • O valor predefinido estabelece o tamanho inicial do cluster quando for criado.
    • A diferença entre dois agendamentos é estabelecida como predefinição em 30 minutos.
    • O valor de tempo segue o formato de 24 horas
    • No caso de uma janela contínua de mais de 24 horas ao longo dos dias, é necessário definir o agendamento de dimensionamento automático ao longo dos dias e o dimensionamento automático assume 23:59 como 00:00 (com a mesma contagem de nós) abrangendo dois dias das 22:00 às 23:59 e 00:00 às 02:00 como 22:00 às 02:00.
    • As agendas são definidas em Tempo Universal Coordenado (UTC), por padrão. Pode sempre atualizar para o seu fuso horário local no menu pendente disponível. Quando você está em um fuso horário que observa o horário de verão, a programação não se ajusta automaticamente, você é obrigado a gerenciar as atualizações de programação de acordo.

Criar um cluster com escala automática baseada em carga

  1. Depois que o pool de clusters for criado, crie um novo cluster com a carga de trabalho desejada (no tipo Cluster) e conclua as outras etapas como parte do processo normal de criação do cluster.

  2. Na guia Configuração, ative a alternância de escala automática.

  3. Selecione Dimensionamento automático baseado em carga

  4. Com base no tipo de carga de trabalho, você tem opções para adicionar tempo limite de descomissionamento normal, período de resfriamento

  5. Selecione os nós mínimo e máximo e, se necessário, configure as regras de escala para personalizar a escala automática de acordo com suas necessidades.

    Captura de tela mostrando como começar a usar o dimensionamento automático baseado em carga.

    Gorjeta

    • A sua subscrição tem uma quota de capacidade para cada região. O número total de núcleos dos nós principais e o máximo de nós de trabalho não podem exceder a cota de capacidade. No entanto, esta quota é um limite suave; Você sempre pode criar um tíquete de suporte para aumentá-lo facilmente.
    • Se você exceder o limite total da cota principal, receberá uma mensagem de erro dizendo The maximum node count you can select is {maxCount} due to the remaining quota in the selected subscription ({remaining} cores).
    • As regras de dimensionamento têm precedência quando uma ou mais regras são acionadas. Mesmo que apenas uma das regras para aumento de escala sugira que o cluster está subprovisionado, o cluster tentará aumentar a escala. Para que a redução de escala aconteça, nenhuma regra de aumento de escala deve ser acionada.
    • Na visualização pública, o HDInsight no AKS suporta até 500 nós em um cluster.

Criar um cluster com um modelo do Resource Manager

Dimensionamento automático baseado em programação

Você pode criar um HDInsight no cluster AKS com dimensionamento automático baseado em agenda usando um modelo do Azure Resource Manager, adicionando um dimensionamento automático à seção clusterProfile -> autoscaleProfile.

O nó de escala automática contém uma recorrência que tem um fuso horário e uma programação que descrevem quando a alteração ocorre. Para obter um modelo completo do Resource Manager, consulte o exemplo JSON

{
  "autoscaleProfile": {
    "enabled": true,
    "autoscaleType": "ScheduleBased",
    "gracefulDecommissionTimeout": 60,
    "scheduleBasedConfig": {
      "schedules": [
        {
          "days": [
            "Monday",
            "Tuesday",
            "Wednesday"
          ],
          "startTime": "09:00",
          "endTime": "10:00",
          "count": 2
        },
        {
          "days": [
            "Sunday",
            "Saturday"
          ],
          "startTime": "12:00",
          "endTime": "22:00",
          "count": 5
        },
        {
          "days": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "startTime": "22:00",
          "endTime": "23:59",
          "count": 6
        },
        {
          "days": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "startTime": "00:00",
          "endTime": "05:00",
          "count": 6
        }
      ],
      "timeZone": "UTC",
      "defaultCount": 110
    }
  }
}

Gorjeta

  • É necessário definir agendas não conflitantes usando implantações ARM, para evitar falhas de operação de dimensionamento.

Dimensionamento automático baseado em carga

Você pode criar um HDInsight no cluster AKS com dimensionamento automático baseado em carga usando um modelo do Azure Resource Manager, adicionando um dimensionamento automático à seção clusterProfile -> autoscaleProfile.

O nó de escala automática contém

  • um intervalo de sondagem, período de reflexão,
  • descomissionamento gracioso,
  • nós mínimos e máximos,
  • regras normalizadas em matéria de limiares,
  • métricas de dimensionamento que descrevem quando a alteração ocorre.

Para obter um modelo completo do Resource Manager, consulte o exemplo JSON da seguinte maneira

  {
  "autoscaleProfile": {
    "enabled": true,
    "autoscaleType": "LoadBased",
    "gracefulDecommissionTimeout": 60,
    "loadBasedConfig": {
      "minNodes": 2,
      "maxNodes": 157,
      "pollInterval": 300,
      "cooldownPeriod": 180,
      "scalingRules": [
        {
          "actionType": "scaleup",
          "comparisonRule": {
            "threshold": 80,
            "operator": " greaterThanOrEqual"
          },
          "evaluationCount": 1,
          "scalingMetric": "allocatedCoresPercentage"
        },
        {
          "actionType": "scaledown",
          "comparisonRule": {
            "threshold": 20,
            "operator": " lessThanOrEqual"
          },
          "evaluationCount": 1,
          "scalingMetric": "allocatedCoresPercentage"
        }
      ]
    }
  }
}

Utilizar a API REST

Para habilitar ou desabilitar a escala automática em um cluster em execução usando a API REST, faça uma solicitação PATCH para seu ponto de extremidade de dimensionamento automático: https://management.azure.com/subscriptions/{{USER_SUB}}/resourceGroups/{{USER_RG}}/providers/Microsoft.HDInsight/clusterpools/{{CLUSTER_POOL_NAME}}/clusters/{{CLUSTER_NAME}}?api-version={{HILO_API_VERSION}}

  • Use os parâmetros apropriados na carga útil da solicitação. A carga útil json pode ser usada para habilitar a escala automática.
  • Use a carga (autoscaleProfile: null) ou use flag (enabled, false) para desativar a escala automática.
  • Consulte os exemplos JSON mencionados na etapa acima para referência.

Pausar a escala automática para um cluster em execução

Introduzimos o recurso de pausa na escala automática. Agora, usando o portal do Azure, você pode pausar a escala automática em um cluster em execução. O diagrama abaixo ilustra como selecionar a pausa e retomar o dimensionamento automático

Captura de tela mostrando como pausar o dimensionamento automático.

Você pode retomar quando quiser retomar as operações de dimensionamento automático.

Captura de tela mostrando como retomar o dimensionamento automático.

Gorjeta

Quando você configura várias agendas e está pausando o dimensionamento automático, ele não aciona o próximo agendamento. A contagem de nós permanece a mesma, mesmo que os nós estejam em um estado desativado.

Copiar configurações de dimensionamento automático

Usando o portal do Azure, agora você pode copiar as mesmas configurações de dimensionamento automático para uma mesma forma de cluster em seu pool de clusters, pode usar esse recurso e exportar ou importar as mesmas configurações.

Captura de tela mostrando como exportar ou importar configurações do dimensionamento automático.

Monitoramento de atividades de dimensionamento automático

Estado do cluster

O status do cluster listado no portal do Azure pode ajudá-lo a monitorar atividades de dimensionamento automático. Todas as mensagens de status do cluster que você pode ver são explicadas na lista.

Estado do cluster Description
Com êxito O cluster está funcionando normalmente. Todas as atividades anteriores de dimensionamento automático foram concluídas com êxito.
Aceite A operação de cluster (por exemplo: scale-up) é aceita, aguardando a conclusão da operação.
Com falhas Isso significa que uma operação atual falhou devido a algum motivo, o cluster talvez não seja funcional.
Cancelada A operação atual está cancelada.

Captura de tela mostrando o status do cluster.

Para exibir o número atual de nós no cluster, vá para o gráfico Tamanho do cluster na página Visão geral do cluster.

Captura de tela mostrando o tamanho do cluster.

Histórico de operações

Você pode exibir o histórico de escalonamento e redução de escala do cluster como parte das métricas do cluster. Você também pode listar todas as ações de dimensionamento no último dia, semana ou outro período.

Captura de tela mostrando o histórico de operações do cluster, em logs de atividades.

Recursos adicionais

Escala manual - Azure HDInsight no AKS