Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-11-28 GMT+08:00

Mecanismos de dimensionamento da carga de trabalho

O CCE oferece suporte a vários modos de dimensionamento de carga de trabalho. As comparações entre as políticas de dimensionamento são listadas na tabela a seguir.
Tabela 1 Comparações entre políticas de dimensionamento automático

Item

HPA

CronHPA

CustomedHPA

Introdução

Dimensionamento automático horizontal do pod

Aprimorado com base em HPA, CronHPA é usado principalmente se o uso de recursos de aplicações muda periodicamente.

Dimensionamento automático do CCE aprimorado que é acionado com base em métricas ou em um horário programado.

Regras

Dimensiona Implementações com base em métricas (uso de CPU e uso de memória).

Escalas Implantações periodicamente (diária, semanal, mensal ou anual em um horário específico).

Dimensiona Implementações com base em métricas (uso de CPU e uso de memória) ou em um intervalo periódico (um ponto de tempo específico todos os dias, todas as semanas, todos os meses ou todos os anos).

Aprimoramento

Adiciona a janela de tempo de resfriamento no nível da aplicação e as funções de limite de escala com base no Kubernetes HPA.

Compatível com objetos de HPA, o que permite que você use CronHPA e HPA.

  • Se ambos CronHPA e HPA são usados, CronHPA é executado com base em HPA e ajusta periodicamente o número de vagens para HPA.
  • Se CronHPA for utilizado separadamente: o CronHPA ajusta periodicamente o número de pods para cargas de trabalho.

Metric-based:

  • o dimensionamento pode ser realizado com base na porcentagem do número atual de pods.
  • A etapa mínima de dimensionamento pode ser definida. O dimensionamento pode ser realizado passo a passo.
  • Diferentes operações de escala podem ser executadas com base nos valores métricos reais.

Periodic:

você pode selecionar um ponto de tempo específico todos os dias, todas as semanas, todos os meses ou todos os anos, ou um período como o tempo de disparo.

Utilização

Criação de uma política HPA para dimensionamento automático da carga de trabalho

Políticas CronHPA

Criação de uma política CustomedHPA para o dimensionamento automático da carga de trabalho

Como funciona o HPA

HPA é um controlador que controla o dimensionamento horizontal do pod. O HPA verifica periodicamente as métricas do pod, calcula o número de réplicas necessárias para atender aos valores de destino configurados para recursos HPA e, em seguida, ajusta o valor do campo replicas no objeto de recurso de destino (como uma Implementação).

Um pré-requisito para o dimensionamento automático é que os dados em execução do contêiner possam ser coletados, como o número de nós/pods de cluster e o uso de CPU e memória de contêineres. O Kubernetes não fornece esses recursos de monitoramento em si. Você pode usar extensões para monitorar e coletar seus dados. O CCE integra Prometheus e Metrics Server para realizar esses recursos:

  • Prometheus é uma estrutura de monitoramento e alarme de código aberto que pode coletar vários tipos de métricas. O Prometheus tem sido uma solução de monitoramento padrão do Kubernetes.
  • Metrics Server é um agregador de dados de utilização de recursos em todo o cluster. O Metrics Server coleta métricas da API Summary exposta pelo kubelet. Essas métricas são definidas para os principais recursos do Kubernetes, como pods, nodes, contêineres e serviços. O Metrics Server fornece um conjunto de APIs padrão para sistemas externos coletarem essas métricas.

O HPA pode trabalhar com o Metrics Server para implementar o escalonamento automático com base no uso da CPU e da memória. Também pode funcionar com o Prometheus para escalonamento automático com base em métricas de monitoramento personalizadas.

Figura 1 mostra como funciona o HPA.

Figura 1 Processo de trabalho do HPA

Dois módulos principais do HPA:

  • Monitoramento da fonte de dados

    A comunidade forneceu apenas HPA baseado em CPU e memória no estágio inicial. Com a população de Kubernetes e Prometheus, os desenvolvedores precisam de mais métricas personalizadas ou informações de monitoramento na camada de acesso para suas próprias aplicações, por exemplo, o QPS do balanceador de carga e o número de usuários on-line do site. Em resposta, a comunidade define um conjunto de APIs de métrica padrão para fornecer serviços externamente por meio dessas APIs agregadas.

    • metrics.k8s.io fornece métricas de monitoramento relacionadas à CPU e à memória de pods e nodes.
    • custom.metrics.k8s.io fornece métricas de monitoramento personalizadas relacionadas a objetos do Kubernetes.
    • external.metrics.k8s.io fornece métricas que vêm de sistemas externos e são irrelevantes para qualquer métrica de recurso do Kubernetes.
  • Dimensionar algoritmos de tomada de decisão

    O controlador HPA calcula a taxa de escala com base nos valores métricos atuais e nos valores métricos desejados usando a seguinte fórmula:

    desiredReplicas = ceil[currentReplicas x (currentMetricValue/desiredMetricValue)]

    Por exemplo, se o valor métrico atual for 200m e o valor alvo for 100m, o número desejado de pods será duplicado de acordo com a fórmula. Na prática, as vagens podem ser constantemente adicionadas ou reduzidas. Para garantir a estabilidade, o controlador HPA é otimizado a partir dos seguintes aspectos:

    • Intervalo de resfriamento: na v1.11 e versões anteriores, o Kubernetes introduziu os parâmetros horizontal-pod-autoscaler-downscale-stabilization-window e horizontal-pod-autoScaler-upscale-stabilization-window para indicar os intervalos de resfriamento após uma redução e expansão, respectivamente, no qual nenhuma operação de dimensionamento não será executada. Nas versões posteriores à v1.14, a fila de agendamento é introduzida para armazenar todas as sugestões de tomada de decisão detectadas dentro de um período de tempo. Em seguida, o sistema toma decisões com base em todas as sugestões válidas de tomada de decisão para minimizar as alterações do número desejado de réplicas para garantir a estabilidade.
    • Tolerâncias: pode ser considerada como uma zona-tampão. Se as alterações do número de vagens puderem ser toleradas, o número de vagens permanece inalterado.

      Use a fórmula: ratio = currentMetricValue/desiredMetricValue

      Quando |ratio – 1,0| ≤ tolerância, o dimensionamento não será realizado.

      Quando |rácio – 1,0| > tolerância, o valor desejado é calculado usando a fórmula mencionada acima.

      O valor padrão é 0,1 na versão atual da comunidade.

O HPA executa dimensionamento com base em limiares métricos. As métricas comuns incluem o uso da CPU e da memória. Você também pode definir métricas personalizadas, como o QPS e o número de conexões, para acionar o escalonamento. No entanto, o escalonamento baseado em métricas traz latência de minutos gerados durante as fases de coleta, determinação e dimensionamento de dados. Essa latência pode causar alto uso da CPU e resposta lenta. Para resolver esse problema, o CCE permite que você configure políticas agendadas para dimensionar recursos regularmente para aplicações com alterações periódicas.