Utwórz Kubernetes EndPointSlices

Utwórz Kubernetes EndPointSlices
Pokrój punktu końcowego umożliwia śledzenie punktu końcowego sieci połączonej z klastrem Kubernetes. Możesz dowiedzieć się więcej o EndpointSlices w środowisku Kubernetes za pośrednictwem tego artykułu, który dla Ciebie stworzyliśmy. W tym samouczku pomożemy dowiedzieć się, czym jest punkt końcowy w klastrze Kubernetes i jak możesz stworzyć punkt końcowy w Kubernetes. Wykazamy niektóre polecenia Kubectl, które pozwalają nam utworzyć punkt końcowy w klastrze Kubernetes.

Co to jest punkt końcowy w Kubernetes?

EndPointSlice w Kubernetes to sieć na śledzenie punktów końcowych. Umożliwia monitorowanie punktów końcowych sieci w klastrze Kubernetes. W prostych słowach jest to obiekt, który otrzymuje adresy IP z każdego przypisanego do niego kapsuły. Usługa Kubernetes odnosi się do tego obiektu, aby uzyskać zapis wewnętrznych adresów IP POD do komunikacji. Ponadto te punkty końcowe są wykorzystywane przez kapsuły, aby wystawić się na usługę.

W sferze Kubernetes te punkty końcowe działają jako warstwa abstrakcyjna, która pomaga usługi Kubernetes, aby upewnić się, że w klastrze istnieje rozkład ruchu na pods. Jednak gdy wzrasta ładunek ruchu, wystąpi problem skalowania ruchu. Wynika to z faktu, że pojedynczy punkt końcowy przechowuje wszystkie punkty końcowe sieci dla każdej usługi. A kiedy te źródła rosną do niedopuszczalnego rozmiaru, wydajność Kubernetes ma negatywnie wpływ. Innymi słowy, gdy liczba punktów końcowych sieciowych rośnie ogromnie, zdolność Kubernetes do skalowania wdrożenia ma negatywny wpływ. Zrozumiemy to za pomocą następującego obrazu graficznego:

Tutaj widać, że punkt końcowy zawiera wszystkie kapsuły w klastrze i punkcie końcowe są rozszerzalną i skalowalną alternatywą dla istniejącego punktu końcowego. Istnieje tylko jeden zasób punktu końcowego dla całej usługi, ale istnieje więcej niż jeden punkt końcowy dla tej samej usługi. EndPointSlices pomagają skalować zasoby sieciowe w ten sposób. Aby zrozumieć, jak znaczący jest ten problem skalowalności, weźmy przykład.

Na przykład usługa Kubernetes ma około 9 000 strąków, które w jakiś sposób kończą się w zasobach punktów końcowych 2 MB. Pojedynczy punkt końcowy ma wszystkie te zasoby punktu końcowego Usług. Jeśli jakikolwiek punkt końcowy sieci zmienia się w punkcie końcowym, cały zasób punktu końcowego musi być rozłożony między każdy węzeł w klastrze. Jeśli chodzi o radzenie sobie z klastrem o 3000 węzłów, staje się to ogromnym problemem, ponieważ do każdego węzła należy wysłać ogromną liczbę aktualizacji. Stąd, gdy skalujesz więcej w jednym punkcie końcowym, trudniejsza skalowanie sieci staje się.

Jednak EndPointSlices rozwiązują ten problem, umożliwiając Kubernetes skalowanie tak bardzo, jak to potrzebne. Zamiast używać jednego punktu końcowego, który zawiera ogromną listę adresów IP i powiązanych z nimi numerów portów, użyj wielu punktów końcowych. Te punkty końcowe są małymi kawałkami ogromnego pojedynczego punktu końcowego. Te plastry są znacznie mniejsze, ale łagodzą obciążenie, które jest spowodowane ogromnym punktem końcowym. Możesz przechowywać do 100 strąków w jednym punkcie końcowym. Te punkty końcowe pomagają rozpowszechniać usługę na określony kaps. Jeśli zmienią się jakikolwiek punkt końcowy sieci, wystarczy wysłać aktualizacje do punktu końcowego, który zawiera maksymalnie 100 strąków. Wszystkie inne kapsuły w sieci pozostają nietknięte.

Dowiedzmy się teraz, jak możemy stworzyć końcowy Kubernetes.

Jak powstają endpointslices w Kubernetes?

Kubernetes EndpointSlices to najlepsza alternatywa dla jednego punktu końcowego w klastrze Kubernetes. Nie tylko pomaga w łatwym i wydajnym śledzeniu wszystkich punktów końcowych sieci, ale także zapewnia lepszą wydajność w porównaniu z jednym punktem końcowym. Pokazuje także niższy ruch sieciowy, oferując niezawodność skalowania. Ponadto korzystanie z wielu punktów końcowych pozwala na umieszczenie mniej pracy na płaszczyźnie sterowania i węzłach w klastrze Kubernetes.

Możesz mieć kroki, które pozwalają nauczyć się tworzenia punktów końcowych w klastrze Kubernetes w następujących przykładach.

Krok 1: Rozpocznij klaster minikube

Pierwszym i najważniejszym krokiem jest upewnienie się, że klaster minikube jest aktywny. Nieaktywny klaster minikube nie pozwoli ci wykonywać żadnej pracy w środowisku Kubernetes, więc upewnij się, że jest w trybie aktywnym. Aby upewnić się, że klaster minikube jest uruchomiony, użyj następującego polecenia:

> Minikube start

Jeśli twój klaster minikube nie rozpoczął się wcześniej lub jest w trybie uśpienia, to polecenie budzi go i uruchamia. Teraz masz aktywny klaster minikube. Jesteś gotowy na utworzenie EndPointSlice w środowisku Kubernetes.

Krok 2: Utwórz wdrożenie za pomocą pliku YAML

Plik YAML jest najczęściej używany w Kubernetes do tworzenia wdrożeń. Możesz użyć wcześniej istniejącego pliku YAML wdrażania lub możesz utworzyć nowy z następującym poleceniem:

> Nano Punkt końcowy.Yaml

To tworzy nowy plik YAML o nazwie „punkt końcowy.YAML ”, w którym możesz zapisać definicję wdrażania dla konfiguracji. Patrz definicja wdrażania na poniższym zrzucie ekranu:

Krok 3: Utwórz EndPointSlice za pomocą pliku YAML

Teraz, gdy mamy plik YAML, który zawiera definicję wdrażania, używamy go do utworzenia EndPointSlices w naszym klastrze Kubernetes. Musimy wdrożyć plik konfiguracyjny, abyśmy mogli mieć EndPointSlices w klastrze Kubernetes. Używamy następującego polecenia do wdrożenia pliku konfiguracyjnego:

> kubectl Utwórz -f punkt końcowy.Yaml

W środowisku Kubernetes zasoby są tworzone za pomocą polecenia „Kubectl Create”. Dlatego używamy polecenia „Kubectl Utwórz”, aby utworzyć EndPointSlices z pliku konfiguracyjnego YAML.

Wniosek

Badaliśmy EndPointSlices w środowisku Kubernetes. EndpointSlice w Kubernetes to obiekt używany do śledzenia wszystkich punktów końcowych sieci w klastrze Kubernetes. Jest to najlepsza alternatywa dla ogromnego i pojedynczego punktu końcowego w klastrze Kubernetes, ponieważ umożliwia lepszą skalowalność i opcje rozszerzalności. Te punkty końcowe umożliwiają klastrze Kubernetes zapewnienie lepszej wydajności poprzez umieszczenie mniej pracy na węzłach i płaszczyźnie sterowania. Za pomocą przykładu nauczyliśmy się tworzyć punkty końcowe w klastrze Kubernetes.