Partilhar via


Dimensionamento automático do HDInsight em clusters AKS

Importante

O Azure HDInsight no AKS foi desativado em 31 de janeiro de 2025. Saiba mais com este anúncio.

Você precisa migrar suas cargas de trabalho para Microsoft Fabric ou um produto equivalente do Azure para evitar o encerramento abrupto de suas cargas de trabalho.

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 em versão beta ou pré-visualização, ou ainda não disponíveis para o público em geral. Para obter informações sobre esta visualização específica, consulte informações de visualização do Azure HDInsight no AKS. Para perguntas ou sugestões de funcionalidades, 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 um data lakehouse na Cloud é a sua elasticidade, o que implica usar a funcionalidade de escala automática 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 nodos de trabalho no 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. Está equipado com capacidades avançadas, como descomissionamento gracioso e período de arrefecimento. 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.

Observação

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 Baseado no cronograma
Flink Prevista Sim
Trino Sim** Sim**
Faísca Sim** Sim**

O descomissionamento programado é configurável.

Métodos de dimensionamento

  • Dimensionamento baseado em agendamento:

    • 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, como no caso do processamento de dados de pedidos que apresentam flutuações aleatórias nos padrões de carga, baseados em diversos 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.

      Dica

      • As regras de "Scale Up" 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 de escala 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 um intervalo de sondagem 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 para a 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 à remoção com base na execução atual das tarefas. A operação de redução de escala primeiro descomissiona os nós e, em seguida, os remove do cluster.

    Importante

    O mecanismo de regra de dimensionamento automático libera proativamente eventos antigos a cada 30 minutos para otimizar a memória do sistema. Como resultado, existe um limite máximo 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étrica Descrição
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.

Observação

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 elegante

As empresas precisam de maneiras de alcançar a escala de petabytes com o dimensionamento automático e desativar recursos de forma suave quando já não forem necessários. Nesse cenário, a funcionalidade de descomissionamento gracioso é bastante ú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 termine as suas tarefas durante um período de tempo configurado antes de remover o trabalhador do cluster. Você pode configurar o tempo limite usando o parâmetro Trino nativo shutdown.grace-periodou na página de configuração do serviço do portal do Azure.

  • Apache Spark : A redução 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

Observação

  • Em regras de escala personalizadas, nenhum gatilho de regra pode ter um intervalo de gatilho maior que 30 minutos. Após um evento de dimensionamento automático ocorrer, o período 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

  1. Para que o dimensionamento automático funcione, é necessário atribuir a permissão de proprietário ao ou a permissão de contribuinte ao no MSI (usado durante a criação do cluster) ao 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 Gerida e selecione a identidade gerida atribuída pelo utilizador , que foi fornecida na fase de criação do cluster.
    4. Atribua a função.

Criar um cluster com escala automática baseada em agendamento

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

  2. Na aba Configuração, ative o alternador Autoescala.

  3. Selecione Agendamento baseado em dimensionamento automático

  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.

    Observação

    • O utilizador deve ter a função "proprietário" ou "colaborador" no MSI do cluster para que o escalamento automático funcione.
    • O valor padrão define o tamanho inicial do cluster quando ele é criado.
    • A diferença entre duas agendas é definida como padrão em 30 minutos.
    • O valor horário 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 a programação de dimensionamento automático ao longo dos dias, e a escala automática assume 23:59 como 00:00 (com a mesma contagem de nós) abrangendo dois dias das 22:00 às 23:59, 00:00 às 02:00 das 22:00 às 02:00.
    • As agendas são definidas em Tempo Universal Coordenado (UTC), por padrão. Você sempre pode atualizar para o fuso horário que corresponde ao seu fuso horário local na lista suspensa disponível. Quando estás num fuso horário que observa o horário de verão, o horário não se ajusta automaticamente. És obrigado a gerir as atualizações do horário de acordo.

Criar um cluster com escala automática baseada em carga

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

  2. Na aba Configuração, ative a alternância Dimensionamento automático.

  3. Selecione Carregar com base em para ajuste automático

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

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

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

    Dica

    • 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 informando The maximum node count you can select is {maxCount} due to the remaining quota in the selected subscription ({remaining} cores).
    • As regras de aumento de escala têm precedência quando uma ou mais regras são ativadas. 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 pré-visualização pública, o HDInsight no AKS suporta até 500 nós num 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 agendamento 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
    }
  }
}

Dica

  • Deve-se definir agendas não conflitantes usando implantações ARM, para evitar falhas de operações de escalonamento.

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 arrefecimento,
  • 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"
        }
      ]
    }
  }
}

Usando a API REST

Para ativar ou desativar a escala automática num cluster ativo usando a API REST, faça uma solicitação PATCH para o endpoint de escala automática: 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 JSON pode ser usada para habilitar o dimensionamento automático.
  • Use a carga (autoscaleProfile: null) ou utilize a bandeira (enabled, false) para desativar a funcionalidade de autoescala.
  • 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.

Pode retomar as operações de dimensionamento automático quando desejar.

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

Dica

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 descomissionado.

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.

Monitorização 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 Descrição
Bem sucedido O cluster está funcionando normalmente. Todas as atividades anteriores de dimensionamento automático foram concluídas com êxito.
Aceito A operação de cluster (por exemplo: aumento de escala) foi aceita, e está a aguardar a conclusão da operação.
Falhou Isso significa que uma operação atual falhou devido a algum motivo, o cluster talvez não seja funcional.
Cancelado A operação atual está cancelada.

Captura de tela mostrando o status do cluster.

Para visualizar o número atual de nós no seu 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 atividade.

Recursos adicionais

Escala manual - Azure HDInsight no AKS