Come configurare il limite di velocità di evento in kubernetes

Come configurare il limite di velocità di evento in kubernetes

Kubernetes fornisce vari modi per controllare il numero di risorse che i singoli contenitori possono consumare. Un modo importante per limitare il numero di risorse utilizzate dai singoli contenitori è attraverso i limiti di tasso di eventi. Questo articolo descrive i limiti di tasso di eventi e come utilizzare questa funzione per limitare il consumo di risorse per le applicazioni in esecuzione su Kubernetes.

Qual è il limite di tasso di eventi in Kubernetes?

I limiti di tasso di eventi sono un modo per controllare la velocità con cui i pod dell'applicazione possono consumare ulteriori CPU e memoria su un cluster. Ad esempio, se una richiesta di inviare dati al servizio arriva troppo rapidamente al backend (E.G., Dieci richieste al secondo), un limitatore di tasso bloccherà la richiesta fino a quando la richiesta precedente non è stata elaborata. Se uno dei tuoi pod cerca di superare questo limite richiedendo più di tre richieste al secondo, verrà respinto. Ciò consente alle applicazioni di funzionare senza intoppi anche quando più istanze della stessa applicazione sono in esecuzione contemporaneamente, senza consumare quantità eccessive di risorse dal cluster. È possibile configurare i limiti di velocità per uno spazio dei nomi, un utente, un server e un oggetto sorgente+.

Perché dovresti utilizzare il limite di tasso di eventi?

Ecco i motivi per cui è meglio utilizzare un limite di tasso di eventi:

Controlla la velocità con cui gli eventi vengono emessi dai tuoi nodi

Questo è importante per controllare la velocità con cui gli eventi vengono emessi dai tuoi nodi. La velocità con cui gli eventi vengono inviati a K8S è variabile, a seconda del carico di lavoro che imponi al tuo cluster. Qualsiasi evento anormale potrebbe causare carichi di lavoro inaspettati sui componenti dell'infrastruttura sottostante e aumentare l'utilizzo della CPU sui nodi principali. Ad esempio, se un nodo sta vivendo un carico elevato a causa di un picco inaspettato nel traffico, potrebbe produrre un numero eccessivo di eventi che potrebbero influire sulle prestazioni del cluster. Pertanto, è importante configurare una soglia sul tasso di eventi che il cluster può elaborare per prevenire il sovraccarico.

Considera il seguente scenario: hai una flotta di cinquanta baccelli in esecuzione nel cluster e ognuno emette circa un evento al secondo in media. In questo scenario, sarebbe consigliabile configurare un tasso di eventi di meno di mille eventi al minuto per impedire al cluster di sovraccaricare e diventare non rispondente.

Avrai il controllo sul numero di baccelli che possono essere creati

Si desidera controllare il numero di pod che possono essere creati o rilasciati in qualsiasi momento. Questo potrebbe essere necessario per gestire efficacemente il carico di lavoro attraverso il cluster ed evitare i problemi di sovraccarico e contesa delle risorse.

Impedisce le risorse disponibili per un'applicazione di essere sopraffatta

Si desidera limitare il tasso di eventi provenienti da un'unica applicazione per impedire le risorse disponibili per tale applicazione. Ad esempio, supponiamo che un'applicazione di streaming fosse generare molti eventi ogni secondo. In tal caso, ciò potrebbe sopraffare le risorse assegnate ad esso e far funzionare il sistema più lentamente o funzionare più male di quanto non altrimenti farebbe. In particolare, assicurano che la CPU e la memoria, le risorse critiche e rimangono energizzate da risorse sufficienti in breve tempo.

Garantisce che una domanda soddisfi i requisiti di prestazione previsti

Si desidera impostare un limite minimo sul numero di risorse utilizzate da un'applicazione specifica per assicurarsi che soddisfi i requisiti di prestazione previsti in ogni momento. Ad esempio, supponiamo che un'applicazione abbia una CPU specificata e un'allocazione RAM, che deve utilizzare per funzionare correttamente. In tal caso, dovresti assicurarti che tenta solo di allocare più risorse di quanto non sia disponibile.

Le notifiche inutili possono essere evitate

Gli amministratori possono evitare di inondare la propria infrastruttura con notifiche inutili limitando il numero di eventi generati.

Ti aiuterà a proteggere il tuo ambiente di produzione dalla congestione di rete eccessiva

Abilitare la limitazione dei tassi degli eventi ti aiuterà a proteggere il proprio ambiente di produzione dalla congestione di rete eccessiva e impedire ai tuoi utenti di sperimentare tempi di inattività inaspettati a causa di nodi sovraccarichi o componenti malfunzionanti. Ti consentirà anche di identificare rapidamente i colli di bottiglia e i problemi di prestazioni in modo da poterli risolvere prima che causino gravi danni al sistema. Per le organizzazioni con requisiti di conformità come PCI-DSS, abilitare la limitazione del tasso di eventi è un must assoluto se si desidera assicurarsi che i dati dell'applicazione siano sempre sicuri.

Come configurare il limite di velocità dell'evento?

Ci sono alcuni modi in cui è possibile abilitare il limite di tasso di eventi in Kubernetes. Il modo più semplice è utilizzare le impostazioni di configurazione dei limiti menzionate qui.

Dovresti creare un nuovo file di configurazione chiamato limiti o qualsiasi nome con cui stai bene. Dopo aver creato il tuo yaml nella directory del cluster, aggiungi i seguenti contenuti:

"
Yamlkind: limite
min: "1"
Max: "3"


Questo definisce un intervallo o un minimo e il numero massimo di baccelli che possono funzionare in qualsiasi momento. Il valore 1 è impostato su "min" e il valore 3 è impostato su "max".

Dopo aver aggiunto i seguenti contenuti, applicalo tramite l'API. È inoltre possibile eseguire la seguente azione in un file di configurazione per abilitare il limite di velocità dell'evento:

Servizi:
event_rate_limit:
Abilitato: vero
Kube-api:


Puoi vedere nel testo sopra che l'opzione "abilitata" è impostata su true.

È inoltre possibile verificare per visualizzare i valori predefiniti at/etc/kubernetes/[configuration_file_name].YAML dopo che il tasso di evento è abilitato:

..
Plugin:
- configurazione:
Apiversion: eventRateLimit.ammissione.K8S.io/v1alpha1
Tipo: configurazione
Limiti:
- Burst: 20000
QPS: 5000
Tipo: server
..


È necessario fornire l'intera risorsa Kubernetes per l'impostazione nella direttiva di configurazione se si desidera modificare il limite di velocità dell'evento:

Servizi:
Kube-api:
event_rate_limit:
Abilitato: vero
configurazione:
Apiversion: eventRateLimit.ammissione.K8S.io/v1alpha1
Tipo: configurazione
Limiti:
- Tipo: server
QPS: 8000
Burst: 40000

Conclusione

Il limite di tasso di eventi è uno strumento potente che gli amministratori di Kubernetes possono utilizzare per limitare il volume degli eventi prodotti dai loro nodi. È possibile limitare il numero di query che sono da un utente esterno può essere inserito nel cluster limitando il numero di eventi creati. Questo articolo ha discusso molti altri vantaggi nell'abilitare i limiti di tasso di eventi di Kubernetes e sottolinea perché è necessario abilitare i limiti di tasso di eventi e come abilitarli.