Este artigo é compartilhado pela Huawei Cloud Community " Lidando com cenários complexos de escalabilidade elástica de negócios por meio da combinação HPA+CronHPA ", autor: Cloud Container Future.
fundo
No cluster k8s, o escalonamento automático horizontal do contêiner (HPA) pode expandir e reduzir automaticamente o número de réplicas de carga de trabalho (réplicas) de acordo com o uso dos recursos do contêiner e dentro do intervalo de réplicas definido. Escalas HPA com base em limites de indicadores Indicadores comuns incluem CPU e memória. Também pode ser dimensionado através de indicadores personalizados, como QPS, número de conexões, etc. Mas há um cenário: há um certo atraso no escalonamento com base em indicadores. Este tipo de atraso inclui principalmente: atraso de coleta (nível de minuto), atraso de julgamento (nível de minuto) e atraso de escalonamento (nível de minuto). Esse tipo de atraso de minuto não pode se adaptar ao rápido aumento no tráfego comercial no curto prazo, o que pode causar um aumento na CPU do aplicativo e um tempo de resposta mais longo.
O escalonamento automático horizontal programado de contêineres (CronHPA ) é um complemento ao HPA. Para empresas com períodos de pico em períodos de tempo fixo, o número de instâncias de contêiner pode ser expandido antecipadamente para evitar falhas de desempenho causadas por tráfego repentino e atrasos nos negócios. Quando os negócios estão em baixa, a reciclagem programada de recursos é acionada.
Em alguns cenários de negócios, há picos e quedas óbvios de tráfego. Se as políticas CronHPA e HPA forem configuradas ao mesmo tempo, a seguinte situação poderá ocorrer: antes que o pico de negócios chegue, a tarefa agendada do CronHPA expande a cópia do contêiner de negócios. com antecedência e, nesse momento, o HPA pode detectar que o uso de recursos está muito baixo e acionar o escalonamento da instância, fazendo com que a estratégia de pré-escalonamento falhe.
O serviço Huawei Cloud CCE oferece suporte à configuração conjunta da política CronHPA e da política HPA e define dinamicamente os limites superior e inferior do intervalo de cópias HPA para ajustar o número de instâncias de contêiner de negócios.
Exemplo de uso
Na vida diária, muitos cenários de negócios têm altos e baixos óbvios quando o tráfego aumenta e são muito sensíveis a atrasos de resposta, como:
1. Jogos online : X Game Client, um jogo online em grande escala, tem um aumento acentuado no número de jogadores durante períodos de pico, como noites, fins de semana e feriados, fazendo com que a carga no servidor do jogo aumente instantaneamente. ao mesmo tempo, se o número de cópias de carregamento for expandido lentamente, pode causar atraso na rede e degradar significativamente a experiência de jogo;
2. Vídeo ao vivo : X Video Live APP, quando certos eventos de grande escala, competições e outras transmissões ao vivo começarem, o número de espectadores aumentará rapidamente, resultando em um aumento acentuado na carga do servidor e um aumento na latência da rede, o que irá em por sua vez, leva à perda de usuários assistindo à transmissão ao vivo. Diminuição da experiência;
3. Promoção de comércio eletrônico : a plataforma de comércio eletrônico X geralmente desperta o entusiasmo do usuário durante suas atividades promocionais, resultando em um aumento significativo nas visitas dos usuários e em um aumento acentuado na carga do servidor. Se o contêiner de negócios não for expandido a tempo, é provável. que os usuários irão A experiência é degradada, o que pode levar seriamente à interrupção dos negócios;
4. Transações financeiras : A plataforma de negociação financeira X envolve uma variedade de produtos financeiros, todos os quais exigem resposta em tempo real. O atraso da rede tem um grande impacto na eficiência e precisão das transações. Durante os períodos de pico, o volume de transações aumentará drasticamente e a latência da rede também aumentará.
Todos os cenários de negócios acima exigem suporte de rede eficiente e estável e são muito sensíveis à latência da rede . Se o contêiner de negócios não for expandido a tempo, a latência da rede será muito alta, a experiência do usuário será prejudicada e até mesmo as operações normais de negócios serão afetadas.
A seguir, tomamos o serviço de vídeo ao vivo como exemplo para apresentar como executar a configuração de escalabilidade elástica. Suponha que haja uma transmissão ao vivo popular das 8h30 às 10 horas todas as noites. Durante esse período, o número de visitas de usuários aumentará drasticamente e, em seguida, o tráfego diminuirá lentamente até atingir um nível mínimo. Para economizar custos, você pode usar a seguinte configuração para expandir o número de instâncias de contêiner de negócios antecipadamente antes que o pico de tráfego chegue. Depois que o pico de tráfego diminuir, reduza lentamente o número de instâncias de contêiner com base no fluxo de negócios:
1. No console CCE, clique no nome do cluster para entrar no cluster.
2. Clique em "Carga de trabalho" na barra de navegação esquerda e clique em "Mais > Auto Scaling" na coluna de operação da carga de trabalho de destino.
3. Selecione "Política HPA+CronHPA" para o tipo de política, habilite a política HPA e habilite a política CronHPA ao mesmo tempo . Neste momento, a CronHPA ajustará regularmente o número máximo e mínimo de instâncias da política HPA.
4. Defina a política HPA
Defina o intervalo de instâncias e a política do sistema, conforme mostrado abaixo, o HPA ajustará dinamicamente o número de instâncias do contêiner no intervalo de 1 a 10 com base na utilização da CPU do contêiner de negócios atual quando a utilização da CPU for superior a 80%. , ele expandirá automaticamente a capacidade Quando a utilização da CPU estiver baixa, reduzirá automaticamente o número de instâncias de contêiner de negócios em 60%.
5. Configure a política CronHPA
Configure tarefas agendadas, conforme mostrado na figura abaixo
Estratégia 1 : Ajustar o intervalo de números de instância da política HPA de 1 a 10 para 8 a 10 às 20h;
Estratégia 2 : Ajuste o intervalo de números de instância da política HPA de 8 a 10 para 1 a 10 às 22h30.
6. Repita as etapas acima. Você pode adicionar várias regras de política, mas o tempo de acionamento das políticas não pode ser o mesmo .
7. Após a conclusão das configurações, clique em "Criar"
Após a conclusão da configuração acima, o CronHPA ajustará o número de instâncias de política HPA de 1 a 10 para 8 a 10 às 20h antes do pico de tráfego. Neste momento, o HPA expandirá o número de instâncias de negócios para pelo menos 8. o próximo período. Aguarde até 22h30 após o pico de tráfego ter passado para ajustar o intervalo de números de instâncias da política HPA de 8 a 10 para 1 a 10. Nesse momento, o HPA reduzirá o número de instâncias de contêiner de negócios para um valor apropriado com base nas condições de tráfego de negócios. para reduzir o custo do usuário.
Análise de ligação CronHPA e HPA
HPA é um controlador usado para controlar o escalonamento horizontal de pods. O HPA verifica periodicamente os dados de uso de recursos dos pods, calcula o número de réplicas necessárias para atender ao valor alvo configurado para recursos HPA e, em seguida, ajusta o campo de réplicas do recurso de destino (. como implantação).
O CronHPA oferece suporte ao ajuste regular do número máximo e mínimo de instâncias da política HPA para obter a ligação com o HPA e atender ao escalonamento da carga de trabalho em cenários complexos.
Como HPA e CronHPA atuam no mesmo objeto de implantação, há um problema de conflito. As duas estratégias de escalonamento são independentes uma da outra. A operação executada posteriormente substituirá a operação realizada anteriormente, fazendo com que o efeito de escalonamento não atenda às expectativas. esta situação precisa ser evitada.
Para evitar os problemas acima, aprimoramos o CronHPA para suportar a aplicação das regras do CronHPA nas políticas do HPA. O CronHPA ajusta apenas a configuração da política do HPA, e o número de instâncias de contêineres de negócios é operado apenas pelo HPA, realizando assim a colaboração. trabalho das duas estratégias elásticas.
Resumir
A política HPA fornecida pela comunidade k8s suporta expansão e contração automáticas com base na CPU, memória e outros usos de recursos do contêiner de negócios dentro do número configurado de instâncias. Sobrepondo a estratégia de expansão programada do CronHPA, espera-se que antes que chegue o pico dos negócios, o número de cópias do contêiner de negócios seja expandido antecipadamente por meio da tarefa agendada do CronHPA. No entanto, neste momento, o HPA pode detectar que o uso de recursos é muito baixo. e acionar a redução da instância, resultando em uma estratégia de pré-expansão inválida. O serviço Huawei Cloud CCE combina HPA e CronHPA para alcançar sinergia orgânica entre estratégias de elasticidade de indicadores e estratégias de elasticidade de tempo, atendendo aos complexos cenários de escalabilidade elástica dos negócios dos clientes.
Documentação de referência:
https://kubernetes.io/zh-cn/docs/tasks/run-application/horizontal-pod-autoscale/
https://support.huaweicloud.com/usermanual-cce/cce_10_0415.html
Clique para seguir e conhecer as novas tecnologias da Huawei Cloud o mais rápido possível~
A equipe de IA da Microsoft na China fez as malas e foi para os Estados Unidos, envolvendo centenas de pessoas. Quanta receita um projeto de código aberto desconhecido pode trazer? A Huawei anunciou oficialmente que a posição da Universidade de Ciência e Tecnologia de Yu Chengdong foi ajustada. abriu oficialmente o acesso à rede externa Os fraudadores usaram o TeamViewer para transferir 3,98 milhões! O que os fornecedores de desktop remoto devem fazer? A primeira biblioteca de visualização front-end e fundador do conhecido projeto de código aberto ECharts do Baidu - um ex-funcionário de uma conhecida empresa de código aberto que "foi para o mar" deu a notícia: Depois de ser desafiado por seus subordinados, o técnico O líder ficou furioso e rude e demitiu a funcionária grávida. A OpenAI considerou permitir que a IA gerasse conteúdo pornográfico. A Microsoft relatou à The Rust Foundation doou 1 milhão de dólares americanos. ?