Opret Kubernetes EndpointSlices

Opret Kubernetes Endpointslices



Et endepunktsudsnit giver dig mulighed for at spore endepunktet for netværket, der er forbundet med Kubernetes-klyngen. Du kan lære mere om EndpointSlices i Kubernetes-miljøet gennem denne artikel, som vi har lavet til dig. I denne øvelse hjælper vi dig med at lære, hvad en EndpointSlice er i Kubernetes-klyngen, og hvordan du kan oprette en EndpointSlice i Kubernetes. Vi vil demonstrere nogle kubectl-kommandoer, der giver os mulighed for at oprette et slutpunkt i Kubernetes-klyngen.

Hvad er en EndpointSlice i Kubernetes?

EndpointSlice i Kubernetes er en netværksslutpunktsporing. Det gør det muligt at overvåge netværksendepunkterne i en Kubernetes-klynge. Med enkle ord er det et objekt, der får IP-adresserne fra hver pod, der er tildelt det. Kubernetes-tjenesten henviser til dette objekt for at få registreringen af ​​pod'ens interne IP-adresser til kommunikation. Desuden bruges disse endepunkter af pods til at blive eksponeret for en service.

I Kubernetes-riget fungerer disse endepunkter som et abstraktionslag, der hjælper Kubernetes-tjenesten med at sikre, at der er en distribution af trafik til pods i klyngen. Men når en belastning af trafik stiger, opstår problemet med trafikskalering. Dette skyldes, at et enkelt endepunkt indeholder alle netværksendepunkter for hver tjeneste. Og når disse kilder vokser til en uacceptabel størrelse, bliver Kubernetes ydeevne påvirket negativt. Med andre ord, når antallet af netværksendepunkter vokser enormt, bliver Kubernetes' evne til at skalere implementeringen negativt påvirket. Lad os forstå dette ved hjælp af følgende grafiske billede:









Her kan du se, at et Endpoint indeholder alle pods i klyngen, og EndpointSlices er det udvidelige og skalerbare alternativ til det eksisterende Endpoint. Der er kun én Endpoint-ressource for hele tjenesten, men der er mere end én EndpointSlices for den samme tjeneste. EndpointSlices hjælper dig med at skalere dine netværksressourcer på denne måde. Lad os tage et eksempel for at forstå, hvor vigtigt dette skalerbarhedsproblem er.



For eksempel har Kubernetes-tjenesten omkring 9.000 pods, som på en eller anden måde ender i 2 MB Endpoint-ressourcer. Et enkelt Endpoint har alle disse Endpoint-ressourcer af tjenesterne. Hvis et netværksendepunkt ændres i endepunktet, skal hele endepunktets ressource fordeles mellem hver knude i klyngen. Når det kommer til at håndtere en klynge med 3000 noder, bliver det et stort problem, da der skal sendes et stort antal opdateringer til hver node. Derfor, når du skalerer mere i blot et enkelt slutpunkt, jo sværere bliver netværket at skalere.





EndpointSlices løser dog dette problem ved at gøre det muligt for Kubernetes at skalere så meget som nødvendigt. I stedet for at bruge et enkelt slutpunkt, der indeholder en enorm liste over IP-adresser og deres tilknyttede portnumre, skal du bruge flere EndpointSlices. Disse EndpointSlices er små bidder af et enormt enkelt slutpunkt. Disse skiver er meget mindre, men de afbøder belastningen, som er forårsaget af det enorme endepunkt. Du kan gemme op til 100 pods i én EndpointSlice. Disse EndpointSlices hjælper dig med at distribuere tjenesten til en bestemt pod. Hvis et netværksslutpunkt ændres, behøver du kun at sende opdateringer til en EndpointSlice, som indeholder maksimalt 100 pods. Alle andre pods i netværket forbliver uberørte.

Lad os nu lære, hvordan vi kan oprette en Kubernetes EndpointSlice.



Hvordan oprettes EndpointSlices i Kubernetes?

Kubernetes EndpointSlices er det bedste alternativ til et enkelt slutpunkt i Kubernetes-klyngen. Det hjælper dig ikke kun med at spore alle netværksendepunkter nemt og effektivt, men giver også bedre ydeevne sammenlignet med et enkelt slutpunkt. Den viser også den lavere netværkstrafik, mens den tilbyder skaleringspålidelighed. Desuden giver brug af de flere EndpointSlices dig mulighed for at lægge mindre arbejde på kontrolplanet og noderne i Kubernetes-klyngen.

Du kan have de trin, der lader dig lære, hvordan du opretter EndpointSlices i Kubernetes-klyngen i de følgende eksempler.

Trin 1: Start Minikube Cluster

Det første og fremmeste skridt er at sikre, at minikube-klyngen er aktiv. En inaktiv minikube-klynge vil ikke tillade dig at udføre noget arbejde i Kubernetes-miljøet, så sørg for, at den er i aktiv tilstand. For at sikre, at minikube-klyngen er oppe og køre, skal du bruge følgende kommando:

> start minikube

Hvis din minikube-klynge ikke er startet tidligere, eller hvis den er i dvaletilstand, vækker denne kommando den og får den op at køre. Nu har du en aktiv minikube-klynge. Du er klar til at oprette EndpointSlice i dit Kubernetes-miljø.

Trin 2: Opret en implementering med YAML-filen

YAML-filen bruges mest i Kubernetes til at oprette implementeringer. Du kan bruge den allerede eksisterende YAML-fil, eller du kan oprette en ny med følgende kommando:

> nano-endepunkt.yaml

Dette opretter en ny YAML-fil med navnet 'endpoint.yaml', hvor du kan gemme implementeringsdefinitionen til konfiguration. Se implementeringsdefinitionen i følgende skærmbillede:

Trin 3: Opret EndpointSlice ved hjælp af YAML-filen

Nu hvor vi har en YAML-fil, som indeholder implementeringsdefinitionen, bruger vi den til at oprette EndpointSlices i vores Kubernetes-klynge. Vi skal implementere konfigurationsfilen, så vi kan have EndpointSlices i Kubernetes-klyngen. Vi bruger følgende kommando til at implementere konfigurationsfilen:

> kubectl oprette -f endpoint.yaml

I Kubernetes-miljøet oprettes ressourcer ved hjælp af kommandoen 'kubectl create'. Derfor bruger vi kommandoen 'kubectl create' til at oprette EndpointSlices fra YAML-konfigurationsfilen.

Konklusion

Vi udforskede EndpointSlices i Kubernetes-miljøet. EndpointSlice i Kubernetes er et objekt, som bruges til at spore alle netværksendepunkter i Kubernetes-klyngen. Det er det bedste alternativ til et stort og enkelt slutpunkt i Kubernetes-klyngen, da det giver mulighed for bedre skalerbarhed og udvidelsesmuligheder. Disse EndpointSlices gør det muligt for Kubernetes-klyngen at give bedre ydeevne ved at placere mindre arbejdskraft på noder og kontrolplanet. Ved hjælp af et eksempel lærte vi, hvordan man opretter EndpointSlices i Kubernetes-klyngen.