Hvordan konfigurere hendelsesfrekvensgrense i Kubernetes

Hvordan konfigurere hendelsesfrekvensgrense i Kubernetes

Kubernetes gir forskjellige måter å kontrollere antallet ressurser individuelle containere kan konsumere. En viktig måte å begrense antall ressurser som brukes av individuelle containere er gjennom hendelsesfrekvensgrenser. Denne artikkelen beskriver grenser for hendelsesfrekvens og hvordan du bruker denne funksjonen for å begrense ressursforbruket for applikasjonene dine som kjører på Kubernetes.

Hva er hendelsesfrekvensgrensen i Kubernetes?

Hendelsesfrekvensgrenser er en måte å kontrollere hastigheten som applikasjonens belg kan konsumere ytterligere CPU og minne på en klynge. For eksempel, hvis en forespørsel om å sende data til tjenesten kommer til backend for raskt (e.g., Ti forespørsler per sekund), vil en renteknytter blokkere forespørselen til forrige forespørsel er behandlet. Hvis noen av belgene dine prøver å overstige denne grensen ved å be om mer enn tre forespørsler per sekund, vil den bli avvist. Dette gjør at applikasjonene dine kan kjøre jevnt selv når flere forekomster av den samme applikasjonen kjører samtidig, uten å konsumere for store mengder ressurser fra klyngen. Du kan konfigurere hastighetsgrenser for et navneområde, en bruker, en server og et kilde+-objekt.

Hvorfor skal du bruke hendelsesfrekvensgrensen?

Her er årsakene til at det er bedre å bruke en hendelsesfrekvensgrense:

Kontrollerer hastigheten som hendelser sendes ut fra nodene dine

Dette er viktig for å kontrollere hastigheten som hendelser sendes ut fra nodene dine. Hastigheten som hendelser blir sendt til K8s er varierende, avhengig av arbeidsmengden du pålegger klyngen din. Enhver unormal hendelse kan forårsake uventede arbeidsmengder på de underliggende infrastrukturkomponentene og øke CPU -utnyttelsen på masternodene. For eksempel, hvis en node opplever en høy belastning på grunn av en uventet pigg i trafikken, kan den produsere et overdreven antall hendelser som kan påvirke klyngens ytelse. Derfor er det viktig å konfigurere en terskel på hendelseshastigheten klyngen kan behandle for å forhindre overbelastning.

Tenk på følgende scenario: Du har en flåte på femti pods som kjører i klyngen din, og hver av dem avgir omtrent en hendelse per sekund i gjennomsnitt. I dette scenariet vil det være lurt å konfigurere en hendelsesfrekvens på færre enn tusen hendelser per minutt for å forhindre at klyngen overbelaster og blir ikke reagerer.

Du vil ha kontroll over antall belg som kan opprettes

Du vil kontrollere antall pods som kan opprettes eller frigjøres når som helst. Dette kan være nødvendig for å effektivt håndtere arbeidsmengde på tvers av klyngen din og unngå overbelastning og ressursproblemer.

Det forhindrer at ressursene som er tilgjengelige for en applikasjon, blir overveldet

Du vil begrense hendelsesgraden fra en enkelt applikasjon for å forhindre ressursene som er tilgjengelige for den applikasjonen. Anta for eksempel at en streaming -applikasjon var å generere mange hendelser hvert sekund. I så fall kan dette overvelde ressursene som er tildelt det og føre til at systemet går saktere eller presterer dårligere enn det ellers ville gjort. Spesielt sikrer de at CPU og hukommelse, kritiske ressurser og holder seg energisk av nok ressurser på kort tid.

Det sikrer at en applikasjon oppfyller sine forventede ytelseskrav

Du vil sette en minimumsgrense for antall ressurser en spesifikk applikasjon bruker for å sikre at den oppfyller forventede ytelseskrav til enhver tid. Anta for eksempel at en applikasjon har en spesifisert CPU- og RAM -tildeling, som den må bruke for å fungere riktig. I så fall bør du sørge for at den bare prøver å fordele mer ressurser enn det har tilgjengelig.

Unødvendige varsler kan unngås

Administratorer kan unngå å oversvømme infrastrukturen sin med unødvendige varsler ved å begrense antall genererte hendelser.

Det vil hjelpe deg å beskytte produksjonsmiljøet ditt mot overdreven nettverksstopp

Aktivering av begrensning av hendelsesrate vil bidra til å beskytte produksjonsmiljøet mot overdreven nettverkstinn og forhindre at brukerne dine opplever uventet driftsstans på grunn av overbelastede noder eller funksjonsfeil komponenter. Det vil også tillate deg å raskt identifisere flaskehalser og ytelsesproblemer, slik at du kan feilsøke dem før de forårsaker alvorlig skade på systemet ditt. For organisasjoner med overholdelseskrav som PCI-DSS, er det å muliggjøre en absolutt må være et absolutt must hvis du vil sikre at applikasjonsdataene dine er sikre til enhver tid.

Hvordan konfigurere hendelsesfrekvensgrensen?

Det er noen måter du kan aktivere hendelsesfrekvensgrensen i Kubernetes. Den enkleste måten er å bruke begrensningskonfigurasjonsinnstillingen som er nevnt her.

Du bør opprette en ny konfigurasjonsfil som heter grenser eller hvilket navn du har det bra med. Etter å ha opprettet Yaml i klyngekatalogen, kan du legge til følgende innhold:

""
Yamlkind: LimitRange
Min: "1"
Maks: "3"


Dette definerer et område eller minimum og maksimalt antall belg som kan kjøres til enhver tid. Verdi 1 er satt til “Min” og verdi 3 er satt til “Max”.

Etter å ha lagt til følgende innhold, bruk det gjennom API. Du kan også utføre følgende handling i en konfigurasjonsfil for å aktivere hendelsesfrekvensgrensen:

Tjenester:
event_rate_limit:
Aktivert: True
Kube-api:


Du kan se i teksten ovenfor at alternativet "aktivert" er satt til True.

Du kan også sjekke standardverdiene på/etc/Kubernetes/[Configuration_File_name].YAML etter at hendelsesfrekvensen er aktivert:

..
Plugins:
- Konfigurasjon:
Apiversion: Eventratelimit.adgang.K8s.IO/V1alpha1
KIND: Konfigurasjon
grenser:
- Burst: 20000
QPS: 5000
Type: Server
..


Du må oppgi hele Kubernetes -ressursen for innstillingen i konfigurasjonsdirektivet hvis du vil endre hendelsesfrekvensgrensen:

Tjenester:
Kube-api:
event_rate_limit:
Aktivert: True
Konfigurasjon:
Apiversion: Eventratelimit.adgang.K8s.IO/V1alpha1
KIND: Konfigurasjon
grenser:
- Type: Server
QPS: 8000
Burst: 40000

Konklusjon

Hendelsesfrekvensgrensen er et potent verktøy som Kubernetes -administratorer kan bruke for å begrense volumet av hendelser som er produsert av deres noder. Du kan begrense antall spørsmål som er av en ekstern bruker kan gjøre til klyngen ved å begrense antall opprettede hendelser. Denne artikkelen diskuterte mange flere fordeler med å aktivere Kubernetes hendelsesfrekvensgrenser og påpeker hvorfor du bør aktivere grenser for hendelsesfrekvens og hvordan du aktiverer dem.