Skapa Kubernetes EndpointSlices

Skapa Kubernetes Endpointslices



En ändpunktsdel låter dig spåra ändpunkten för nätverket som är anslutet till Kubernetes-klustret. Du kan lära dig mer om EndpointSlices i Kubernetes-miljön genom den här artikeln som vi skapade åt dig. I den här handledningen hjälper vi dig att lära dig vad en EndpointSlice är i Kubernetes-klustret och hur du kan skapa en EndpointSlice i Kubernetes. Vi kommer att visa några kubectl-kommandon som låter oss skapa en slutpunkt i Kubernetes-klustret.

Vad är en EndpointSlice i Kubernetes?

EndpointSlice i Kubernetes är en nätverksslutpunktsspårare. Det gör det möjligt att övervaka nätverksändpunkterna i ett Kubernetes-kluster. Med enkla ord är det ett objekt som får IP-adresserna från varje pod som tilldelats det. Kubernetes-tjänsten hänvisar till detta objekt för att få posten över poddens interna IP-adresser för kommunikation. Dessutom används dessa slutpunkter av poddarna för att få sig själva att exponeras för en tjänst.

I Kubernetes-riket fungerar dessa slutpunkter som ett abstraktionslager som hjälper Kubernetes-tjänsten att se till att det finns en distribution av trafik till pods i klustret. Men när en belastning av trafik ökar, uppstår problemet med trafikskalning. Detta beror på att en enda slutpunkt innehåller alla nätverksändpunkter för varje tjänst. Och när dessa källor växer till en oacceptabel storlek, påverkas Kubernetes prestanda negativt. Med andra ord, när antalet nätverksändpunkter växer enormt, påverkas Kubernetes förmåga att skala distributionen negativt. Låt oss förstå detta med hjälp av följande grafiska bild:









Här kan du se att en Endpoint innehåller alla poddar i klustret och EndpointSlices är det utökbara och skalbara alternativet till den befintliga Endpoint. Det finns bara en Endpoint-resurs för hela tjänsten men det finns mer än en EndpointSlices för samma tjänst. EndpointSlices hjälper dig skala dina nätverksresurser på detta sätt. För att förstå hur betydande detta skalbarhetsproblem är, låt oss ta ett exempel.



Till exempel har Kubernetes-tjänsten cirka 9 000 pods som på något sätt hamnar i 2MB Endpoint-resurser. En enda Endpoint har alla dessa Endpoint-resurser för tjänsterna. Om någon nätverksändpunkt ändras i slutpunkten måste hela resursen för slutpunkten fördelas mellan varje nod i klustret. När det kommer till att hantera ett kluster med 3000 noder blir det ett stort problem eftersom ett stort antal uppdateringar måste skickas till varje nod. Därför, när du skalar mer i bara en enda slutpunkt, desto svårare blir det att skala nätverket.





Men EndpointSlices löser detta problem genom att möjliggöra för Kubernetes att skala så mycket som behövs. Istället för att använda en enda slutpunkt som innehåller en enorm lista med IP-adresser och deras tillhörande portnummer, använd flera EndpointSlices. Dessa EndpointSlices är små bitar av en enorm enda slutpunkt. Dessa skivor är mindre i mycket, men de mildrar belastningen som orsakas av den enorma slutpunkten. Du kan lagra upp till 100 pods i en EndpointSlice. Dessa EndpointSlices hjälper dig att distribuera tjänsten till en specifik pod. Om någon nätverksändpunkt ändras behöver du bara skicka uppdateringar till en EndpointSlice som innehåller maximalt 100 pods. Alla andra poddar i nätverket förblir orörda.

Låt oss nu lära oss hur vi kan skapa en Kubernetes EndpointSlice.



Hur skapas EndpointSlices i Kubernetes?

Kubernetes EndpointSlices är det bästa alternativet till en enda slutpunkt i Kubernetes-klustret. Det hjälper dig inte bara att spåra alla nätverksändpunkter enkelt och effektivt utan ger också bättre prestanda jämfört med en enda slutpunkt. Den visar också den lägre nätverkstrafiken samtidigt som den erbjuder skalningspålitlighet. Genom att använda flera EndpointSlices kan du dessutom lägga mindre arbete på kontrollplanet och noderna i Kubernetes-klustret.

Du kan ha stegen som låter dig lära dig hur du skapar EndpointSlices i Kubernetes-klustret i följande exempel.

Steg 1: Starta Minikube-klustret

Det första och främsta steget är att säkerställa att minikube-klustret är aktivt. Ett inaktivt minikube-kluster tillåter dig inte att utföra något arbete i Kubernetes-miljön, så se till att det är i aktivt läge. För att säkerställa att minikube-klustret är igång, använd följande kommando:

> starta minikube

Om ditt minikube-kluster inte har startat tidigare eller om det är i viloläge, väcker det här kommandot det och sätter igång det. Nu har du ett aktivt minikube-kluster. Du är redo att skapa EndpointSlice i din Kubernetes-miljö.

Steg 2: Skapa en distribution med YAML-filen

YAML-filen används oftast i Kubernetes för att skapa distributioner. Du kan använda den redan existerande YAML-filen eller så kan du skapa en ny med följande kommando:

> nano endpoint.yaml

Detta skapar en ny YAML-fil med namnet 'endpoint.yaml' där du kan spara distributionsdefinitionen för konfiguration. Se distributionsdefinitionen i följande skärmdump:

Steg 3: Skapa EndpointSlice med hjälp av YAML-filen

Nu när vi har en YAML-fil som innehåller distributionsdefinitionen använder vi den för att skapa EndpointSlices i vårt Kubernetes-kluster. Vi måste distribuera konfigurationsfilen så att vi kan ha EndpointSlices i Kubernetes-klustret. Vi använder följande kommando för att distribuera konfigurationsfilen:

> kubectl skapa -f endpoint.yaml

I Kubernetes-miljön skapas resurser med kommandot 'kubectl create'. Därför använder vi kommandot 'kubectl create' för att skapa EndpointSlices från YAML-konfigurationsfilen.

Slutsats

Vi utforskade EndpointSlices i Kubernetes-miljön. EndpointSlice i Kubernetes är ett objekt som används för att spåra alla nätverksslutpunkter i Kubernetes-klustret. Det är det bästa alternativet till en enorm och enkel slutpunkt i Kubernetes-klustret eftersom det tillåter bättre skalbarhet och utökningsmöjligheter. Dessa EndpointSlices gör det möjligt för Kubernetes-klustret att ge bättre prestanda genom att lägga mindre arbete på noder och kontrollplanet. Med hjälp av ett exempel lärde vi oss hur man skapar EndpointSlices i Kubernetes-klustret.