Visão geral
Auto scaling é um serviço que ajusta automaticamente e economicamente os recursos de serviço com base em seus requisitos de serviço e políticas configuradas.
Contexto
Cada vez mais aplicações são desenvolvidas com base no Kubernetes. Torna-se cada vez mais importante expandir rapidamente aplicações no Kubernetes para lidar com picos de serviço e reduzir aplicações fora do horário de pico para economizar recursos e reduzir custos.
Em um cluster do Kubernetes, o dimensionamento automático envolve pods e nós. Um pod é uma instância de aplicação. Cada pod contém um ou mais contêineres e é executado em um nó (servidor VM ou bare-metal). Se um cluster não tiver nós suficientes para executar novos pods, adicione nós ao cluster para garantir a execução do serviço.
No CCE, o dimensionamento automático é usado para serviços on-line, computação e treinamento em larga escala, treinamento e inferência de GPU de aprendizado profundo ou GPU compartilhada, mudanças periódicas de carga e muitos outros cenários.
Dimensionamento automático em CCE
O CCE oferece suporte ao dimensionamento automático para cargas de trabalho e nós.
- Workload scaling: dimensionamento automático na camada de agendamento para alterar a capacidade de agendamento das cargas de trabalho. Por exemplo, você pode usar o HPA, um componente de escala na camada de agendamento, para ajustar o número de réplicas de uma aplicação. Ajustar o número de réplicas altera a capacidade de agendamento ocupada pela carga de trabalho atual, permitindo assim o dimensionamento na camada de agendamento.
- Node scaling: dimensionamento automático na camada de recurso. Quando os nós de cluster planejados não podem permitir o agendamento da carga de trabalho, os recursos ECS são fornecidos para dar suporte ao agendamento.
O dimensionamento de carga de trabalho e o dimensionamento de nós podem funcionar separadamente ou em conjunto. Para mais detalhes, consulte Uso de HPA e CA para dimensionamento automático de cargas de trabalho e nós.
Componentes
Os componentes de dimensionamento da carga de trabalho são descritos a seguir:
Tipo |
Nome do componente |
Descrição do componente |
Referência |
---|---|---|---|
HPA |
Um componente interno do Kubernetes, que permite o dimensionamento horizontal de pods. Ele adiciona a janela de tempo de resfriamento em nível de aplicação e as funções de limite de dimensionamento com base no HPA. |
Criação de uma política HPA para dimensionamento automático da carga de trabalho |
|
CustomedHPA |
Um recurso de escalonamento automático aprimorado, usado para escalonamento automático de implantações com base em métricas (uso da CPU e uso da memória) ou em intervalos periódicos (um ponto de tempo específico todos os dias, todas as semanas, todos os meses ou todos os anos). |
Criação de uma política CustomedHPA para o dimensionamento automático da carga de trabalho |
|
Uma estrutura de monitoramento e alarme de sistema de código aberto, que coleta métricas públicas (uso de CPU e uso de memória) do kubelet no cluster do Kubernetes. |
|||
CronHPA |
CronHPA pode escalar dentro ou fora de um cluster em um tempo fixo. Ele pode trabalhar com políticas HPA para ajustar periodicamente o escopo de dimensionamento HPA, implementando o dimensionamento de carga de trabalho em cenários complexos. |
Os componentes de dimensionamento de nó são descritos a seguir:
Nome do componente |
Descrição do componente |
Cenário de aplicação |
Referência |
---|---|---|---|
Um componente Kubernetes de código aberto para dimensionamento horizontal de nós, que é otimizado em termos de recursos de agendamento e dimensionamento automático. |
Serviços on-line, aprendizagem profunda e computação em larga escala com orçamentos de recursos limitados |