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:
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.
Com a nova opção configurar regra de escala, agora você pode personalizar as regras de escala.
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-period
ou 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
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.
Consulte a ilustração a seguir e as etapas listadas sobre como adicionar atribuição de função
Selecione adicionar atribuição de função,
- Tipo de atribuição: funções de administrador privilegiadas
- Função: Proprietário ou Colaborador
- Membros: escolha Identidade Gerida e selecione a identidade gerida atribuída pelo utilizador , que foi fornecida na fase de criação do cluster.
- Atribua a função.
Criar um cluster com escala automática baseada em agendamento
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.
Na aba Configuração, ative o alternador Autoescala.
Selecione Agendamento baseado em dimensionamento automático
Selecione o seu fuso horário e, em seguida, clique em + Adicionar regra
Selecione os dias da semana aos quais a nova condição deve ser aplicada.
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.
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
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.
Na aba Configuração, ative a alternância Dimensionamento automático.
Selecione Carregar com base em para ajuste automático
Com base no tipo de carga de trabalho, você tem opções para adicionar tempo limite de descomissionamento normalperíodo de resfriamento
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.
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
Pode retomar as operações de dimensionamento automático quando desejar.
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.
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. |
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.
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.
Recursos adicionais