Dimensionar automaticamente o HDInsight em clusters do AKS
Importante
O Azure HDInsight no AKS se aposentou em 31 de janeiro de 2025. Saiba mais com este comunicado.
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
Esse recurso está atualmente em versão prévia. Os termos de uso complementares para o Microsoft Azure Previews incluem mais termos legais que se aplicam aos recursos do Azure que estão em versão beta, em versão prévia ou ainda não lançados em disponibilidade geral. Para obter informações sobre essa versão prévia específica, consulte Azure HDInsight em informações de visualização do AKS. Para perguntas ou sugestões de recursos, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para mais atualizações sobre a Comunidade do Azure HDInsight no .
O dimensionamento de qualquer cluster para atender ao desempenho do trabalho e gerenciar custos antecipadamente é sempre complicado e difícil de determinar! Um dos benefícios lucrativos da construção de uma data lake house na nuvem é 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 é um dos fatores chave para estabelecer um ecossistema otimizado para custos. Com padrões de uso variados em qualquer empresa, pode haver variações nas cargas de cluster ao longo do tempo que podem levar os clusters a serem subprovisionados (desempenho ruim) ou superprovisionados (custos desnecessários devido a recursos ociosos).
O recurso de dimensionamento automático oferecido pelo HDInsight no AKS pode aumentar ou diminuir automaticamente o número de nós de processamento em seu cluster. O dimensionamento automático utiliza as métricas do cluster e a política de dimensionamento dos clientes.
Esse recurso é adequado para cargas de trabalho críticas, que podem ter
- Padrões de tráfego variáveis ou imprevisíveis e que exijam SLAs para alto desempenho e escala ou
- Agendamento predeterminado para que os nós de trabalho necessários estejam disponíveis para executar os trabalhos com êxito no cluster.
Dimensionamento automático com HDInsight em clusters AKS torna os clusters econômicos e elásticos no Azure.
Com a escala automática, os clientes podem escalar para baixo os clusters sem afetar as cargas de trabalho. Ele é ativado com capacidades avançadas, como a desativação suave e o período de resfriamento. Esses recursos capacitam os usuários a fazer escolhas informadas sobre 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 dos limites predefinidos com base em métricas de cluster ou em um agendamento definido de operações de expansão e redução. Há dois tipos de condições para disparar eventos de dimensionamento automático: gatilhos baseados em limite para várias métricas de desempenho de cluster (chamadas de dimensionamento baseado em carga) e gatilhos baseados em tempo (chamados de dimensionamento baseado em agendamento).
O dimensionamento baseado em carga altera o número de nós em seu cluster, dentro de um intervalo definido, para garantir o uso ideal da CPU e minimizar o custo de execução.
O dimensionamento baseado em agendamento altera o número de nós em seu cluster com base em um cronograma de operações de escalonamento para cima e para baixo.
Nota
O escalonamento automático não dá suporte à 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 | Baseado em Carga | Baseado em Agendamento |
---|---|---|
Flink | Planeado | Sim |
Trino | Sim** | Sim** |
Fagulha | Sim** | Sim** |
**O descomissionamento suave é configurável.
Métodos de dimensionamento
Dimensionamento baseado em agendamento:
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 apresenta flutuações aleatórias nos padrões de carga, baseadas em vários fatores.
Com a nova opção de configurar regra de escala, agora você pode personalizar as regras de escala.
Dica
- As regras de Expansão têm precedência quando uma ou mais regras são ativadas. Mesmo que apenas uma das regras para escalar verticalmente sugira que o cluster esteja subprovisionado, o cluster tentará escalar verticalmente. Para que a redução de escala ocorra, nenhuma regra de expansão deve ser ativada.
Condições de escala baseadas em carga
Quando as condições a seguir são detectadas, a escala automática emite uma solicitação de escala
Expansão | Redução de escala |
---|---|
Os núcleos alocados são maiores que 80% para intervalo de votação de 5 minutos (período de verificação de 1 minuto) | Núcleos alocados são menores ou iguais a 20% para intervalo de votação de 5 minutos (período de verificação de 1 minuto) |
Para escalar, o Auto Scale emite uma solicitaçã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 escalar para baixo, o ajuste automático de escala emite uma solicitação para remover alguns nós. As considerações de redução horizontal incluem o número de pods por nó, os requisitos atuais de CPU e memória, bem como os nós de trabalho que são candidatos à remoção com base na execução dos trabalhos atuais. A operação de redução horizontal primeiro descomissiona os nós e depois 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 dimensionamento. Para garantir o gatilho consistente e confiável de ações de dimensionamento, é imperativo definir o intervalo de regra de dimensionamento para um valor menor que o limite. Ao aderir a essa diretriz, você pode garantir um processo de dimensionamento suave e eficiente, gerenciando efetivamente os recursos do sistema.
Métricas de cluster
O escalonamento automático monitora continuamente o cluster e coleta as seguintes métricas para o escalonamento automático com base em carga.
Métricas de cluster disponíveis para fins de dimensionamento
Métrica | Descrição |
---|---|
Porcentagem 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. |
Porcentagem 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. |
Porcentagem 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. |
Porcentagem 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. Isso também é configurável ao personalizar o intervalo de verificação usando a opção de personalizar o dimensionamento automático. A escala automática toma decisões de escalonamento vertical ou horizontal com base nessas métricas.
Nota
Por padrão, o escalonamento automático usa a calculadora de recursos padrão do YARN no Apache Spark. O dimensionamento baseado em carga está disponível para clusters do Apache Spark.
Descomissionamento suave
As empresas precisam de maneiras de atingir a escala de petabyte com dimensionamento automático e desativar recursos de forma suave quando não forem mais necessários. Nesse cenário, o recurso de descomissionamento suave é útil.
O descomissionamento suave permite que os trabalhos sejam concluídos mesmo após o dimensionamento automático ter disparado 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 Elegante habilitado por padrão. O Coordenador permite que o trabalhador em fase de encerramento conclua suas tarefas por um tempo configurado antes de remover o trabalhador do cluster. Você pode configurar o tempo limite usando o parâmetro Trino nativo
shutdown.grace-period
ou na página de configuração do serviço do portal do Azure.Apache Spark: A redução do dimensionamento pode afetar/parar quaisquer trabalhos em execução no cluster. Se você habilitar as configurações de Descomissionamento Tranquilo no portal do Azure, ele incorporará o Descomissionamento Tranquilo 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 resfriamento
Para evitar operações contínuas de expansão, o mecanismo de dimensionamento automático aguarda um intervalo configurável antes de iniciar outro conjunto de operações de expansão. 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 ocorrer um evento de dimensionamento automático, a quantidade de tempo a aguardar antes de impor outra política de dimensionamento.
- O período de resfriamento deve ser maior que o intervalo de política, de modo que as métricas do cluster possam ser redefinidas.
Começar
Para que o dimensionamento automático funcione, é necessário atribuir o proprietário de proprietário ou permissão permissão ao MSI (usado durante a criação do cluster) no nível do cluster, usando o IAM no painel esquerdo.
Consulte a ilustração a seguir e as etapas listadas sobre como adicionar atribuição de função
Selecione para adicionar atribuição de função,
- Tipo de atribuição: Funções de administrador com privilégios
- Função: Proprietário ou Colaborador
- Membros: escolha a identidade gerenciada e selecione a identidade gerenciada atribuída pelo usuário , que foi fornecida durante a fase de criação do cluster.
- Atribua a função.
Criar um cluster com dimensionamento automático baseado em agendamento
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.
Na guia de Configuração , ative a alternância para dimensionamento automático.
Selecione Agendar dimensionamento automático com base em
Selecione o fuso horário e clique em + Adicionar regra
Selecione os dias da semana aos quais a nova condição deve se aplicar.
Edite o tempo em que a condição deve entrar em vigor e o número de nós para os quais o cluster deve ser dimensionado.
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 padrão define o tamanho inicial do cluster quando ele é criado.
- A diferença entre dois agendamentos é definida como padrão por 30 minutos.
- O valor de tempo segue o formato de 24 horas
- No caso de uma janela contínua de mais de 24 horas que abrange vários dias, você é obrigado a definir o agendamento de dimensionamento automático para abarcar esses dias, e o dimensionamento automático considera 23:59 como 00:00 (com a mesma contagem de nós), abrangendo dois dias dos períodos de 22:00 às 23:59 e 00:00 às 02:00, ou seja, das 22:00 às 02:00.
- Os agendamentos são definidos em UTC (Tempo Universal Coordenado), por padrão. Você pode sempre atualizar para o fuso horário que corresponde ao seu horário local na lista suspensa disponível. Quando você está em um fuso horário que observa o Horário de Verão, o agendamento não é ajustado automaticamente, você é obrigado a gerenciar as atualizações de agendamento adequadamente.
Criar um cluster com dimensionamento automático baseado em carga
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.
Na guia de Configuração , habilite a alternar do dimensionamento automático .
Selecionar dimensionamento automático de baseado em carga
Com base no tipo de carga de trabalho, você tem opções para adicionar tempo limite de desativação gradual, período de resfriamento.
Selecione o mínimo de e no máximo nós e, se necessário, configurar as regras de escala para personalizar a escala automática de acordo com suas necessidades.
Dica
- Sua assinatura tem uma cota de capacidade para cada região. O número total de núcleos de seus nós principais e o máximo de nós de trabalho não podem exceder a cota de capacidade. No entanto, essa cota é um limite ajustável; você sempre pode abrir um tíquete de suporte para solicitar facilmente um aumento.
- Se você exceder o limite total de cota do núcleo, 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 Escalonamento têm precedência quando uma ou mais regras são ativadas. Mesmo que apenas uma das regras para escalar verticalmente sugira que o cluster esteja subprovisionado, o cluster tentará escalar verticalmente. Para que a redução de escala ocorra, nenhuma regra de aumento de escala deve ser disparada.
- Na versão prévia pública, o HDInsight no AKS dá suporte a até 500 nós em um cluster.
Criar um cluster com um modelo do Resource Manager
Autodimensionamento agendado
Você pode criar um HDInsight no cluster do AKS com dimensionamento automático baseado em agendamento usando um modelo do Azure Resource Manager adicionando um dimensionamento automático ao clusterProfile – seção> autoscaleProfile.
O nó de dimensionamento automático contém uma recorrência que tem um fuso horário e um agendamento que descreve quando a alteração ocorre. Para obter um modelo completo do Resource Manager, consulte o JSON de exemplo
{
"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
- Você precisa definir agendas que não conflitem, usando implantações do ARM, para evitar falhas nas operações de dimensionamento.
Dimensionamento automático com base na carga
Você pode criar um HDInsight em um cluster no AKS, com dimensionamento automático baseado em carga, usando um modelo do Azure Resource Manager, adicionando um dimensionamento automático à seção autoscaleProfile do clusterProfile ->.
O nó de dimensionamento automático contém
- um intervalo de sondagem, um período de resfriamento,
- desativação normal,
- nós mínimos e máximos,
- regras de limite padrão,
- métricas de dimensionamento que descrevem quando a alteração ocorre.
Para obter um modelo completo do Resource Manager, consulte o JSON de exemplo 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 habilitar ou desabilitar a escala automática em um cluster em execução usando a API REST, faça uma solicitação PATCH para o endpoint de Auto Escala: 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 no payload da solicitação. O conteúdo json pode ser usado para habilitar a escala automática.
- Use o conteúdo (autoscaleProfile: nulo) ou use o sinalizador (habilitado, false) para desabilitar 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
Você pode retomar as operações de dimensionamento automático quando quiser.
Dica
Quando você configura vários agendamentos e pausa o dimensionamento automático, ele não aciona o próximo agendamento. A contagem de nós permanece igual, mesmo quando os nós estão 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, você pode usar esse recurso e exportar ou importar as mesmas configurações.
Monitoramento de atividades de dimensionamento automático
Status 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.
Status do cluster | Descrição |
---|---|
Conseguiu | O cluster está operando normalmente. Todas as atividades de dimensionamento automático anteriores foram concluídas com êxito. |
Aceitado | A operação de cluster (por exemplo: escalar verticalmente) é aceita, aguardando a conclusão da operação. |
Falhou | Isso significa que uma operação atual falhou devido a algum motivo, talvez o cluster não esteja funcional. |
Cancelado | A operação atual é cancelada. |
Para exibir o número atual de nós em seu cluster, vá para o gráfico de tamanho de cluster na página Visão Geral para o cluster.
Histórico de operações
Você pode exibir o histórico de expansão e redução 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.
recursos adicionais