As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Dimensionamento da carga de trabalho
O escalonamento da carga de trabalho no Kubernetes é essencial para manter o desempenho do aplicativo e a eficiência dos recursos em ambientes dinâmicos. O escalonamento ajuda a garantir que os aplicativos possam lidar com cargas de trabalho variadas sem degradação do desempenho. O Kubernetes fornece a capacidade de aumentar ou reduzir automaticamente os recursos com base em métricas em tempo real, permitindo que as organizações respondam rapidamente às mudanças no tráfego. Essa elasticidade não apenas melhora a experiência do usuário, mas também otimiza a utilização dos recursos, ajudando a minimizar os custos associados a recursos subutilizados ou superprovisionados.
Além disso, o escalonamento eficaz da carga de trabalho oferece suporte à alta disponibilidade, garantindo que os aplicativos permaneçam responsivos mesmo durante os períodos de pico de demanda. O escalonamento da carga de trabalho no Kubernetes permite que as organizações façam melhor uso dos recursos da nuvem ajustando dinamicamente a capacidade para atender às necessidades atuais.
Esta seção discute os seguintes tipos de escalabilidade da carga de trabalho:
Horizontal Pod Autoscaler
O Horizontal Pod Autoscaler
Em contextos em que a demanda do usuário pode flutuar consideravelmente ao longo do tempo, como aplicativos da web, microsserviços e APIs, o HPA é especialmente útil.
O escalador automático Horizontal Pod fornece os seguintes recursos principais:
-
Escalabilidade automática — o HPA aumenta ou diminui automaticamente o número de réplicas de pods em resposta às métricas em tempo real, garantindo que os aplicativos possam ser escalados para atender à demanda do usuário.
-
Decisões baseadas em métricas — Por padrão, o HPA é dimensionado com base na utilização da CPU. No entanto, ele também pode usar métricas personalizadas, como uso de memória ou métricas específicas do aplicativo, permitindo estratégias de escalabilidade mais personalizadas.
-
Parâmetros configuráveis — você pode escolher as contagens mínima e máxima de réplicas e as porcentagens de utilização desejadas, o que lhe dá autoridade sobre a gravidade da escalabilidade.
-
Integração com o Kubernetes — Para monitorar e modificar recursos, o HPA trabalha em conjunto com outros elementos do ecossistema Kubernetes, incluindo o Metrics Server, a API do Kubernetes e adaptadores de métricas personalizados.
-
Melhor utilização dos recursos — a HPA ajuda a garantir que os recursos sejam usados de forma eficaz, reduzindo os custos e melhorando o desempenho, modificando dinamicamente o número de pods.
Autoescalador proporcional de cluster
O Cluster Proportional Autoscaler
Essa abordagem é particularmente útil para aplicativos que precisam manter um certo nível de redundância ou disponibilidade em relação ao tamanho do cluster, como CoreDNS e outros serviços de infraestrutura. Alguns dos principais casos de uso do CPA incluem o seguinte:
-
Provisionamento excessivo
-
Expanda os principais serviços da plataforma
-
Expanda as cargas de trabalho porque o CPA não exige um servidor de métricas ou um adaptador Prometheus
Ao automatizar o processo de escalabilidade, o CPA ajuda as empresas a manter uma distribuição equilibrada da carga de trabalho, aumentando a eficiência dos recursos e garantindo que os aplicativos sejam adequadamente provisionados para atender à demanda do usuário.
O autoescalador proporcional de cluster fornece os seguintes recursos principais:
Escalabilidade baseada em nós — o CPA dimensiona as réplicas de acordo com o número de nós do cluster que podem ser programados, permitindo que os aplicativos se expandam ou se contraiam proporcionalmente ao tamanho do cluster.
Ajuste proporcional — Para garantir que o aplicativo possa ser escalado de acordo com as mudanças no tamanho do cluster, o autoescalador estabelece uma relação proporcional entre o número de nós e o número de réplicas. Esse relacionamento é usado para calcular o número desejado de réplicas para uma carga de trabalho.
Integração com componentes do Kubernetes — O CPA funciona com componentes padrão do Kubernetes, como o Horizontal Pod Autoscaler (HPA), mas se concentra especificamente na contagem de nós em vez das métricas de utilização de recursos. Essa integração permite uma estratégia de escalabilidade mais abrangente.
Clientes da API Golang — Para monitorar o número de nós e seus núcleos disponíveis, o CPA usa clientes da API Golang que são executados dentro de pods e conversam com o servidor da API Kubernetes.
Parâmetros configuráveis — Usando um
ConfigMap
, os usuários podem definir limites e parâmetros de escala que o CPA usa para modificar seu comportamento e garantir que ele siga o plano de escalabilidade pretendido.
Autoescalador baseado em eventos baseado em Kubernetes
O Event Driven Autoscaler (KEDA
Ao automatizar o processo de escalabilidade com base em eventos, a KEDA ajuda as organizações a otimizar a utilização de recursos, melhorar o desempenho do aplicativo e reduzir os custos associados ao provisionamento excessivo. Essa abordagem é especialmente valiosa para aplicativos que experimentam padrões de tráfego variados, como microsserviços, funções sem servidor e sistemas de processamento de dados em tempo real.
O KEDA fornece os seguintes recursos principais:
-
Escalonamento orientado por eventos — O KEDA permite que você defina regras de escalonamento com base em fontes externas de eventos, como filas de mensagens, solicitações HTTP ou métricas personalizadas. Esse recurso ajuda a garantir que os aplicativos sejam dimensionados em resposta à demanda em tempo real.
-
Componente leve — O KEDA é um componente leve e de propósito único que não requer muita configuração ou sobrecarga para ser facilmente integrado aos clusters Kubernetes existentes.
-
Integração com o Kubernetes — A KEDA amplia os recursos dos componentes nativos do Kubernetes, como o Horizontal Pod Autoscaler (HPA). A KEDA adiciona recursos de escalonamento orientados por eventos a esses componentes, aprimorando-os em vez de substituí-los.
-
Support para várias fontes de eventos — O KEDA é compatível com uma ampla variedade de fontes de eventos, incluindo plataformas de mensagens populares como RabbitMQ, Apache Kafka e outras. Devido a essa adaptabilidade, você pode personalizar o escalonamento para se adequar à sua arquitetura exclusiva orientada a eventos.
-
Escaladores personalizados — Usando escaladores personalizados, você pode designar métricas específicas que a KEDA pode usar para iniciar ações de escalabilidade em resposta a requisitos ou lógicas comerciais específicas.
-
Configuração declarativa — De acordo com os princípios do Kubernetes, você pode usar o KEDA para descrever o comportamento de escalabilidade de forma declarativa usando recursos personalizados do Kubernetes para definir como o escalonamento deve acontecer.