Conceito - Opções de dimensionamento do Kubernetes

Concluído

Às vezes, dimensionar o número de pods para lidar com o aumento da demanda não é suficiente. Para se ajustar às mudanças nas demandas dos aplicativos, como entre o dia de trabalho e a noite ou em um fim de semana, os clusters geralmente precisam de uma maneira de dimensionar automaticamente.

Opções de dimensionamento do Kubernetes

Os clusters do Kubernetes podem ser dimensionados usando um dos seguintes componentes:

  • O Cluster Autoscaler, que observa pods que não podem ser agendados em nós devido a restrições de recursos. O cluster aumenta automaticamente o número de nós para atender à demanda.
  • O Horizontal Pod Autoscaler (HPA), que usa o Metrics Server em um cluster do Kubernetes para monitorar a demanda de recursos de pods. Se um aplicativo precisar de mais recursos, o número de pods é automaticamente aumentado para atender à demanda.

Tanto o HPA quanto o Cluster Autoscaler também podem diminuir o número de pods e nós conforme necessário. O Cluster Autoscaler diminui o número de nós quando há um período de tempo com capacidade não utilizada. Todos os pods em um nó que o Cluster Autoscaler precisa remover são agendados com segurança em outro lugar do cluster.

O Cluster Autoscaler pode não conseguir reduzir a escala em situações em que os pods não podem se mover, como:

  • Um pod é criado diretamente e não é apoiado por um objeto controlador, como um Deployment ou ReplicaSet.
  • Um orçamento de interrupção de pods (PDB) é muito restritivo e não permite que o número de pods fique abaixo de um determinado limite.
  • Um pod usa seletores de nó ou antiafinidade que não podem ser honrados se agendados em um nó diferente.

Usando o KEDA com o HPA

O KEDA atua como uma API de métricas personalizada, usando escaladores para expor métricas ao HPA, simplificando o processo de desenvolvimento de um servidor de métricas.

Os scalers ajudam a fornecer métricas de várias fontes para a HPA. A KEDA suporta uma ampla variedade de escaladores, incluindo:

  • Apache Kafka
  • AWS CloudWatch
  • AWS Kinesis Stream
  • Fila do AWS SQS
  • Armazenamento de Blobs do Azure
  • Hubs de Eventos do Azure
  • Azure Log Analytics
  • Azure Monitor
  • Azure Service Bus
  • Fila de Armazenamento do Azure
  • Google Cloud Platform Pub/Sub
  • IBM MQ
  • InfluxDB
  • NATS Streaming
  • OpenStack Swift
  • PostgreSQL
  • Prometheus
  • Fila RabbitMQ
  • Listas Redis

Para obter a lista completa, consulte Escaladores atualmente disponíveis para KEDA.

Verifique o seu conhecimento

1.

Sua carga de trabalho executa a transformação de fotos com uso intensivo de CPU. Qual opção de dimensionamento você deve escolher?

2.

Seu cluster está chegando perto de usar todos os seus recursos disponíveis durante os horários de pico. Qual opção de dimensionamento você deve usar?

3.

Seu serviço processa mensagens de uma fila do Apache Kafka. Qual opção de dimensionamento você deve escolher?