Ustaw limity zasobów Kubernetes

Ustaw Limity Zasobow Kubernetes



Limity zasobów są ważną częścią orkiestracji kontenerów Kubernetes, ponieważ zapewniają, że kontenery nie zużywają zbyt wielu zasobów ani nie przestają odpowiadać z powodu wyczerpania zasobów. Ten artykuł zawiera przewodnik dotyczący ustawiania limitów zasobów kontenera Kubernetes w celu zmaksymalizowania korzyści i maksymalnego wykorzystania aplikacji. Dowiedz się, jak szybko i łatwo konfigurować zasoby kontenerów i zarządzać nimi w kilku prostych krokach, aby mieć pewność, że wszystkie usługi działają bezproblemowo.

Ustaw limity zasobów kontenera w Kubernetes

Limity zasobów kontenera są istotnym elementem Kubernetes, pozwalającym użytkownikom zarządzać liczbą zasobów, które kontener może zużyć. Aby uniknąć przeciążenia i zagwarantować wydajność aplikacji, jest to szczególnie ważne w kontekście produkcyjnym. Oto kilka profesjonalnych wskazówek dotyczących ustawiania limitów zasobów kontenera:







Zacznij od określenia zasobów, których potrzebują Twoje kontenery. Przeanalizuj użycie systemu i określ, które kontenery powinny mieć dostosowane limity pamięci i procesora. Podczas ustawiania limitów zasobów należy również wziąć pod uwagę podstawowe węzły — jeśli ustawisz zbyt wysoki lub zbyt niski limit, węzeł może nie być w stanie uruchomić innych aplikacji bez awarii. Następnie zdecyduj, jakiego rodzaju limitu chcesz użyć – rozrywającego czy nierozrywalnego. Zobaczmy teraz niezbędne kroki, które możesz wykonać, aby ustawić limity zasobów kontenera Kubernetes. Zanim udasz się w stronę schodów, musisz spełnić kilka niezbędnych warunków:



Wymagania wstępne

Zanim przejdziemy do kolejnych kroków, upewnijmy się, że nasz system spełnia wszystkie wymagania wstępne. Upewnij się, że masz Ubuntu 20.04 lub jakąkolwiek inną najnowszą wersję, aby mieć działające środowisko Linux/Unix, klaster Kubernetes, Kubectl CLI do korzystania z poleceń kubectl, komunikację klastra, zarządzanie środowiskiem programistycznym oraz minikube lub inny plac zabaw Kubernetes do tworzenia klastry. Zainstaluj te narzędzia, jeśli jeszcze ich nie zainstalowałeś, zanim przejdziesz do następnej sekcji. Teraz przechodzimy do przewodnika krok po kroku, jak ustawić limity zasobów kontenera Kubernetes.



Jak ustawić limity zasobów Kubernetes

Ustawianie limitów zasobów kontenera Kubernetes jest ważną częścią zarządzania i utrzymywania klastrów Kubernetes. Właściwy limit zasobów zapewnia optymalne działanie każdego kontenera bez obniżania wydajności innych kontenerów lub całego klastra. Można to zrobić, ustawiając żądania zasobów i limity dla procesora, pamięci, pamięci efemerycznej i nie tylko. Oto jak prawidłowo ustawić limity zasobów kontenera Kubernetes.





Krok 1: Uruchom Minikube

Klaster Minikube musi być w stanie aktywnym, abyś mógł w nim uruchamiać swoje aplikacje lub komendy. Aby upewnić się, że działa poprawnie, użyj następującego polecenia:



> uruchom minikube

Krok 2: Włącz serwer metryk

W tym kroku udostępniamy polecenie, które umożliwia włączenie serwera metryk. Polecenie jest podane w następujący sposób:

> dodatki minikube włączyć serwer metryk

Krok 3: Sprawdź, czy serwer metryk jest aktywny, czy nie

Wpisz następujące polecenie, aby sprawdzić, czy serwer metryk jest aktywny, czy nie:

> kubectl pobierz apiservices

Jak widać na poprzednim obrazie, zawiera odwołanie do metrics.k8s.io na wypadek, gdyby interfejs API metryk zasobów był dostępny.

Krok 4: Utwórz przestrzeń nazw

Aby zachować zasoby, utwórz przestrzeń nazw dla tego ćwiczenia, która jest oddzielona od reszty klastra. Teraz zademonstrujemy, jak utworzyć przestrzeń nazw. Polecenie, które wykonuje, jest podane w następujący sposób:

> kubectl tworzy przestrzeń nazw ABC

Krok 5: Utwórz plik konfiguracyjny

W tym kroku tworzony jest plik konfiguracyjny YAML, którego używamy do konstruowania poda w kontenerze. Oto polecenie, które służy do wykonania tego:

> nano reqlimit.yaml

Tutaj musisz dołączyć żądanie procesora wraz z limitem procesora. Uwzględnij zasoby: limity, aby zdefiniować limit procesora. W takim przypadku tworzony jest Pod z pojedynczym kontenerem. Kontener ma limit żądań 0,5 procesora i maksymalnie 1 procesor. Plik konfiguracyjny Poda jest dostępny tutaj. Jak widać, sekcja args pliku konfiguracyjnego zawiera argumenty używane przez kontener podczas uruchamiania. Kontener otrzymuje polecenie, aby spróbował wykorzystać 2 procesory za pomocą parametru -cpus „2”.

Podczas tworzenia zasobów w Kubernetes, takich jak wdrożenia i zasobniki, ważne jest, aby określić minimalną liczbę wymaganych zasobów (żądanie) i maksymalną dozwoloną liczbę zasobów (limit) dla każdego zasobnika lub wdrożenia. Zapobiega to zużyciu zbyt wielu zasobów przez jeden zasobnik, co mogłoby spowodować obniżenie wydajności lub nawet awarię innych aktywnych zasobników z powodu braku dostępnych zasobów w klastrze.

Krok 6: Utwórz kapsułę

Teraz pokażemy, jak utworzyć kapsułę za pomocą następującego polecenia:

> utwórz kubectl -f reqlimit.yaml

Z poprzedniego podanego wyniku można zauważyć, że tworzony jest strąk o nazwie „cpu-demo”.

Krok 7: Zweryfikuj kapsułę

W tym kroku sprawdzamy, czy utworzony pod jest aktywny, czy nie za pomocą następującego polecenia:

> kubectl pobierz demo procesora --przestrzeń nazw =abc

Krok 8: Wyświetl szczegóły poda

Teraz, jeśli chcesz wyświetlić szczegółowe informacje o Pod, oto polecenie, które należy wykonać:

> kubectl pobierz demo procesora --wyjście =jaml --przestrzeń nazw =abc

Krok 9: Usuń kapsułę

Tutaj pokażemy, jak usunąć kapsułę, aby wyczyścić zasoby. Polecenie używane w tym celu jest następujące:

> kubectl usuń demo procesora --przestrzeń nazw =abc

Krok 10: Utwórz plik konfiguracyjny

W tym kroku tworzymy plik konfiguracyjny. Ten plik określa żądanie procesora, które jest dość duże dla twoich węzłów.

> nano wymagany limit2

Plik konfiguracyjny z pojedynczym kontenerem można znaleźć tutaj. Kontener prosi o 100 procesorów, czyli więcej niż jakikolwiek węzeł, który twój klaster może rozsądnie zapewnić.

Krok 11: Cre a Pod

W tym kroku tworzymy kapsułę za pomocą następującego polecenia:

> utwórz kubectl -f reqlimit2.yaml

Krok 12: Wyświetl stan kapsuły

Teraz widać ul a tus kapsuły z dołączonym tutaj poleceniem:

Dane wyjściowe pokazują, że stan Poda to Oczekujący.

Krok 13: Zobacz informacje o strąkach

Teraz przeglądamy szczegółowe informacje o podeście, w tym wydarzenia z podanym poleceniem tutaj:

Przejdź do sekcji wydarzeń i sprawdź, czy kontener jest zaplanowany, czy nie.

Jeśli nie można go zaplanować, a przyczyną są niewystarczające zasoby procesora, można usunąć węzeł. Jak usunąć węzeł, wyjaśniono w następnym kroku.

Krok 14: Usuń węzeł

Możesz usunąć węzeł za pomocą następującego polecenia:

> kubectl usuń pod cpu-demo- 2 --przestrzeń nazw =abc

Jaki jest wpływ limitów zasobów kontenera na wydajność?

Wraz z rosnącą popularnością technologii kontenerów Kubernetes ważne jest, aby zrozumieć, w jaki sposób ograniczenia zasobów mogą wpływać na wydajność. Ustawienie limitów zasobów w kontenerze Kubernetes może pomóc zapewnić, że aplikacje działają na optymalnym poziomie i nie zużywają zbyt wielu zasobów z serwera hosta. Ograniczając zasoby, możesz uniknąć zmarnowanych zbędnych procesów, zapobiec awariom systemu z powodu wykorzystania i zoptymalizować wydajność swoich kontenerów.

Aby ustawić te limity zasobów w kontenerze Kubernetes, musisz użyć narzędzia o nazwie cgroups (grupy kontrolne). Cgroups pozwalają administratorom ograniczyć zasoby, takie jak cykle procesora lub użycie pamięci dla poszczególnych kontenerów. Możesz także ustawić inne parametry, takie jak maksymalne rozmiary plików lub wykorzystanie przepustowości sieci na kontener.

Wniosek

Ustawianie limitów zasobów kontenera Kubernetes jest kluczowym elementem zarządzania środowiskiem przetwarzania w chmurze. Dzięki odpowiedniej konfiguracji możesz zapewnić, że każdy kontener ma dostęp do potrzebnych mu zasobów, ale nie w takim stopniu, aby wpływał na inne kontenery lub systemy. Pozwala to na bardziej efektywne i oszczędne wykorzystanie zasobów obliczeniowych. Dodatkowo, ograniczając ilość pamięci lub procesora, jaką może zużywać kontener, możesz zapobiec przestojom spowodowanym niekontrolowanymi procesami lub nieoczekiwanymi skokami użycia.