Kubernetes fornece várias maneiras de controlar o número de recursos que os contêineres individuais podem consumir. Uma maneira importante de limitar o número de recursos usados por contêineres individuais é através dos limites da taxa de eventos. Este artigo descreve os limites da taxa de eventos e como usar esse recurso para limitar o consumo de recursos para seus aplicativos em execução em Kubernetes.
Qual é o limite de taxa de eventos em Kubernetes?
Os limites da taxa de eventos são uma maneira de controlar a taxa na qual os pods do seu aplicativo podem consumir CPU e memória adicionais em um cluster. Por exemplo, se uma solicitação para enviar dados para o serviço chegar ao back -end muito rapidamente (e.g., Dez solicitações por segundo), um limitador de taxa bloqueará a solicitação até que a solicitação anterior seja processada. Se algum de seus pods tentar exceder esse limite solicitando mais de três solicitações por segundo, ele será rejeitado. Isso permite que seus aplicativos funcionem sem problemas, mesmo quando várias instâncias do mesmo aplicativo estão funcionando simultaneamente, sem consumir quantidades excessivas de recursos do cluster. Você pode configurar limites de taxa para um espaço para nome, um usuário, um servidor e um objeto de origem+.
Por que você deveria usar o limite de taxa de eventos?
Aqui estão as razões pelas quais é melhor usar um limite de taxa de eventos:
Controla a taxa na qual os eventos são emitidos de seus nós
Isso é importante para controlar a taxa em que os eventos são emitidos de seus nós. A taxa em que os eventos são enviados para K8s é variável, dependendo da carga de trabalho que você impõe ao seu cluster. Qualquer evento anormal pode causar cargas de trabalho inesperadas nos componentes de infraestrutura subjacente e aumentar a utilização da CPU nos nós mestres. Por exemplo, se um nó estiver experimentando uma carga alta devido a um pico inesperado no tráfego, poderá produzir um número excessivo de eventos que podem afetar o desempenho do cluster. Portanto, é importante configurar um limite sobre a taxa de eventos que o cluster pode processar para evitar sobrecarga.
Considere o seguinte cenário: você tem uma frota de cinquenta pods em execução em seu cluster, e cada um emite aproximadamente um evento por segundo em média. Nesse cenário, seria aconselhável configurar uma taxa de eventos de menos de mil eventos por minuto para impedir que o cluster sobrecarregue e se torne sem resposta.
Você terá controle sobre o número de vagens que podem ser criadas
Você deseja controlar o número de pods que podem ser criados ou lançados a qualquer momento. Isso pode ser necessário para gerenciar efetivamente a carga de trabalho em seu cluster e evitar problemas de sobrecarga e contenção de recursos.
Impede que os recursos disponíveis para um aplicativo sejam sobrecarregados
Você deseja limitar a taxa de eventos provenientes de um único aplicativo para impedir os recursos disponíveis para esse aplicativo. Por exemplo, suponha que um aplicativo de streaming tenha sido gerar muitos eventos a cada segundo. Nesse caso, isso poderia sobrecarregar os recursos alocados a ele e fazer com que o sistema funcione mais devagar ou tenha um desempenho mais ruim do que seria de outra forma. Em particular, eles garantem que a CPU e a memória, recursos críticos e permaneçam energizados por recursos suficientes em pouco tempo.
Ele garante que um aplicativo atenda aos requisitos de desempenho esperados
Você deseja definir um limite mínimo para o número de recursos que um aplicativo específico usa para garantir que atenda aos requisitos de desempenho esperados o tempo todo. Por exemplo, suponha que um aplicativo tenha uma alocação de CPU e RAM especificada, que deve usar para funcionar corretamente. Nesse caso, você deve garantir que ele apenas tente alocar mais recursos do que disponível.
Notificações desnecessárias podem ser evitadas
Os administradores podem evitar inundar sua infraestrutura com notificações desnecessárias, limitando o número de eventos gerados.
Isso ajudará você a proteger seu ambiente de produção contra congestionamento excessivo da rede
A possibilidade de permitir a limitação da taxa de eventos ajudará a proteger seu ambiente de produção contra congestionamento excessivo da rede e impedirá que seus usuários experimentem tempo de inatividade inesperado devido a nós sobrecarregados ou componentes com defeito. Ele também permitirá que você identifique rapidamente gargalos e problemas de desempenho para que você possa solucioná -los antes que eles causem danos graves ao seu sistema. Para organizações com requisitos de conformidade, como PCI-DSS, ativar a limitação da taxa de eventos é uma necessidade absoluta se você deseja garantir que os dados do seu aplicativo sejam seguros o tempo todo.
Como configurar o limite de taxa de eventos?
Existem algumas maneiras pelas quais você pode ativar o limite de taxa de eventos em Kubernetes. A maneira mais simples é usar a configuração dos limites mencionada aqui.
Você deve criar um novo arquivo de configuração chamado limites ou qualquer nome que você esteja bem. Depois de criar seu YAML no diretório do seu cluster, adicione o seguinte conteúdo:
"
Yamlkind: Limitrange
min: "1"
Max: "3"
Isso define um intervalo ou mínimo e o número máximo de vagens que podem ser executadas a qualquer momento. O valor 1 está definido como "min" e o valor 3 está definido como "max".
Depois de adicionar o seguinte conteúdo, aplique -o através da API. Você também pode executar a seguinte ação em um arquivo de configuração para ativar o limite da taxa de eventos:
Serviços:
event_rate_limit:
ativado: true
Kube-api:
Você pode ver no texto acima que a opção "ativada" está definida como true.
Você também pode verificar para ver os valores padrão em/etc/kubernetes/[Configuration_file_name].YAML Após a taxa de eventos, está ativado:
..
Plugins:
- configuração:
APIVERSION: EventRatelimit.admissão.K8S.io/v1alpha1
tipo: configuração
limites:
- BURST: 20000
QPS: 5000
Tipo: servidor
..
Você deve fornecer todo o recurso Kubernetes para a configuração na Diretiva de Configuração, se desejar alterar o limite da taxa de eventos:
Serviços:
Kube-api:
event_rate_limit:
ativado: true
configuração:
APIVERSION: EventRatelimit.admissão.K8S.io/v1alpha1
tipo: configuração
limites:
- Tipo: servidor
QPS: 8000
BURST: 40000
Conclusão
O limite da taxa de eventos é uma ferramenta potente que os administradores de Kubernetes podem usar para limitar o volume de eventos que são produzidos por seus nós. Você pode limitar o número de consultas que são por um usuário externo podem fazer no cluster limitando o número de eventos criados. Este artigo discutiu muitos outros benefícios de ativar os limites da taxa de eventos de Kubernetes e aponta por que você deve ativar os limites da taxa de eventos e como habilitá -los.