Criação de uma política HPA para dimensionamento automático da carga de trabalho
Horizontal Pod Autoscaling (HPA) no Kubernetes implementa o dimensionamento horizontal de pods. Em uma política HPA do CCE, você pode configurar diferentes janelas de tempo de resfriamento e limites de escala para diferentes aplicações com base no HPA do Kubernetes.
Pré-requisitos
- Kubernetes Metrics Server: fornece métricas básicas de uso de recursos, como uso de CPU e memória do contêiner. É suportado por todas as versões de cluster.
- Monitoramento de cluster da nuvem nativa: fornece métricas personalizadas além das métricas básicas de recursos. Registre o Prometheus como o serviço que fornece a API de métricas. Para mais detalhes, consulte Fornecer métricas de recursos por meio de Metrics API. Este suplemento suporta clusters v1.17 ou posterior.
- Prometheus (EOM): fornece métricas personalizadas além das métricas básicas de recursos. Registre o Prometheus como o serviço que fornece a API de métricas. Para mais detalhes, consulte Fornecer métricas de recursos por meio de Metrics API. Este suplemento suporta apenas clusters de v1.21 ou anterior.
Restrições
- As políticas HPA podem ser criadas apenas para clusters de v1.13 ou posterior.
- Para clusters anteriores à v1.19.10, se uma política HPA for usada para expandir uma carga de trabalho com volumes do EVS montados, os pods existentes não poderão ser lidos ou gravados quando um novo pod for agendado para outro nó.
Para clusters de v1.19.10 e posterior, se uma política HPA for usada para expandir uma carga de trabalho com o volume do EVS montado, um novo pod não poderá ser iniciado porque os discos EVS não podem ser anexados.
Procedimento
- Efetue logon no console do CCE e clique no nome do cluster para acessar o console do cluster.
- No painel de navegação, escolha Workload Scaling. Em seguida, clique em Create HPA Policy no canto superior direito.
- Defina parâmetros de política.
Tabela 1 Parâmetros de política HPA Parâmetro
Descrição
Nome da política
Name of the policy to be created. Defina este parâmetro conforme necessário.
Namespace
Namespace ao qual a carga de trabalho pertence.
Associated Workload
Carga de trabalho com a qual a política HPA está associada.
Pod Range
Número mínimo e máximo de vagens.
Quando uma política é acionada, os pods de carga de trabalho são escalados dentro desse intervalo.
Cooldown Period
Intervalo entre uma redução e uma expansão. A unidade é minuto. O intervalo não pode ser inferior a 1 minuto.
Este parâmetro é suportado apenas em clusters de v1.15 a v1.23.
Este parâmetro indica o intervalo entre operações consecutivas de dimensionamento. O período de resfriamento garante que uma operação de dimensionamento seja iniciada somente quando a anterior for concluída e o sistema estiver funcionando de forma estável.
Scaling Behavior
Este parâmetro é suportado apenas em clusters de v1.25 ou posterior.
- Default: dimensiona cargas de trabalho usando o comportamento padrão do Kubernetes. Para obter detalhes, consulte Comportamento padrão.
- Custom: dimensiona cargas de trabalho usando políticas personalizadas, como stabilization window, steps e priorities. Parâmetros não especificados usam os valores recomendados pelo Kubernetes.
- Disable scale-out/scale-in: selecione se deseja desativar a redução ou expansão.
- Stabilization Window: um período durante o qual o CCE verifica continuamente se as métricas usadas para o dimensionamento continuam flutuando. O CCE dispara a escala se o estado desejado não é mantido para a janela inteira. Esta janela restringe o oscilação indesejado da contagem de pods devido a alterações métricas.
- Step: especifica a etapa de dimensionamento. Você pode definir o número ou a porcentagem de pods a serem reduzidos ou expandidos de um período especificado. Se houver várias políticas, você poderá selecionar a política que maximiza ou minimiza o número de pods.
System Policy
- Metric: você pode selecionar CPU usage ou Memory usage.
NOTA:
Uso = CPUs ou memória usadas por pods/CPUs ou memória solicitadas.
- Desired Value: insira o uso médio de recursos desejado.
Este parâmetro indica o valor desejado da métrica selecionada. Número de pods a serem escalados (arredondado) = (valor métrico atual/valor desejado) x número de pods atuais
NOTA:Ao calcular o número de pods a serem adicionados ou reduzidos, a política HPA usa o número máximo de pods nos últimos 5 minutos.
- Tolerance Range: o dimensionamento não é disparado quando o valor da métrica está dentro da faixa de tolerância. O valor desejado deve estar dentro da faixa de tolerância.
Se o valor da métrica for maior que o limite de redução e menor que o limite de expansão, nenhum dimensionamento será acionado. Este parâmetro é suportado apenas em clusters de v1.15 ou posterior.
Política personalizada (suportada apenas em clusters da v1.15 ou posterior)
NOTA:Antes de definir uma política personalizada, instale um complemento que suporte a coleta de métricas personalizadas no cluster, por exemplo, o complemento prometheus.
- Metric Name: nome da métrica personalizada. Você pode selecionar um nome conforme solicitado.
Para mais detalhes, consulte Monitoramento de métricas personalizadas usando o Prometheus.
- Metric Source: selecione um tipo de objeto na lista suspensa. Você pode selecionar Pod.
- Desired Value: o valor médio da métrica de todos os pods. Número de pods a serem escalados (arredondado) = (valor métrico atual/valor desejado) x número de pods atuais
NOTA:
Ao calcular o número de pods a serem adicionados ou reduzidos, a política HPA usa o número máximo de pods nos últimos 5 minutos.
- Tolerance Range: o dimensionamento não é disparado quando o valor da métrica está dentro da faixa de tolerância. O valor desejado deve estar dentro da faixa de tolerância.
- Clique em Create.