Ustaw limity zasobów Kubernetes

Ustaw limity zasobów Kubernetes

Limity zasobów są ważną częścią orkiestracji kontenerów Kubernetes, ponieważ zapewniają, że kontenery nie konsumują zbyt wielu zasobów lub nie reagują na wyczerpanie zasobów. W tym artykule zawiera przewodnik na temat ustawienia limitów zasobów kontenerowych Kubernetes, aby zmaksymalizować ich korzyści i jak najlepiej wykorzystać aplikacje. Dowiedz się, jak szybko i łatwo konfigurować zasoby kontenerów i zarządzać kilkoma prostymi krokami, aby upewnić się, że wszystkie Twoje usługi działają płynnie.

Ustaw limity zasobów kontenerowych w Kubernetes

Limity zasobów kontenerowych są niezbędnym elementem Kubernetes, umożliwiając użytkownikom zarządzanie liczbą zasobów, które kontener może spożywać. Aby uniknąć przeciążenia i zagwarantowania wydajności aplikacji, jest to szczególnie ważne w kontekstach produkcyjnych. Oto kilka wskazówek, aby ustawić limity zasobów kontenerowych:

Zacznij od ustalenia zasobów potrzebnych kontenerów. Przeanalizuj wykorzystanie systemu i ustal, które pojemniki powinny mieć dostosowane limity pamięci i procesora. Ważne jest również rozważenie podstawowych węzłów podczas ustawiania limitów zasobów - jeśli ustawiasz zbyt wysoką lub zbyt niską limit, węzeł może nie być w stanie uruchomić innych aplikacji bez awarii. Następnie zdecyduj, jakiego rodzaju limitu chcesz użyć - możliwy do wybuchu lub nieobjętych. Teraz zobaczmy niezbędne kroki, które możesz wykonać, aby ustawić limity zasobów kontenerowych Kubernetes. Przed udaniem się w kierunku schodów istnieje pewne niezbędne warunki:

Wymagania wstępne

Zanim przejdziemy do kroków, upewnijmy się, że nasz system spełnia wszystkie potrzeby warunków wstępnych. Upewnij się, że masz Ubuntu 20.04 lub dowolna inna najnowsza wersja, która ma do pracy środowisko Linux/UNIX, Kubernetes Cluster, Kubectl CLI do korzystania z poleceń Kubectl, komunikacji klastra, zarządzania środowiskiem programistycznym oraz minikube. Zainstaluj te narzędzia, jeśli jeszcze ich nie zainstalowałeś przed przejściem do następnej sekcji. Teraz przechodzimy do przewodnika krok po kroku, jak ustawić limity zasobów kontenerowych Kubernetes.

Jak ustawić limity zasobów Kubernetes

Ustawienie limitów zasobów kontenerowych Kubernetes jest ważną częścią zarządzania i utrzymywania klastrów Kubernetes. Posiadanie odpowiedniego limitu zasobów zapewnia, że ​​każdy kontener działa optymalnie, bez narażania wydajności innych kontenerów lub całego klastra. Można to zrobić, ustawiając żądania i limity zasobów dla procesora, pamięci, efemerycznego przechowywania i innych. Oto jak poprawnie ustawić limity zasobów kontenerowych Kubernetes.

Krok 1: Rozpocznij minikube

Minikube klaster musi znajdować się w stanie aktywnym, abyś mógł uruchomić w nim aplikacje lub polecenia. Aby upewnić się, że działa prawidłowo, użyj następującego podanego polecenia:

> Minikube start

Krok 2: Włącz serwer Metrics

W tym kroku udostępniamy polecenie, które pozwala włączyć serwer Metrics. Polecenie jest podane następująco:

> Minikube dodatki Włącz metryki serwer

Krok 3: Sprawdź, czy serwer wskaźników jest aktywny, czy nie

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

> Kubectl otrzymuj apiservices

Jak widać na poprzednim obrazie, zawiera odniesienie do wskaźników.K8s.IO w przypadku dostępnego interfejsu API wskaźników zasobów.

Krok 4: Utwórz przestrzeń nazw

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

> kubectl Utwórz przestrzeń nazw ABC

Krok 5: Utwórz plik konfiguracyjny

Plik konfiguracyjny YAML, którego używamy do konstruowania kapsułki w kontenerze, jest tworzony na tym etapie. Oto polecenie używane do osiągnięcia tego:

> Nano reqlimit.Yaml

Tutaj musisz dołączyć żądanie procesora wraz z limitem procesora. Uwzględnij zasoby: limity w celu zdefiniowania limitu procesora. W takim przypadku tworzone jest kapsuły z jednym pojemnikiem. Pojemnik ma 0.5 Limit żądania procesora i maksimum 1 procesora. Plik konfiguracyjny POD jest dostępny tutaj. Jak widać, sekcja ARGS w pliku konfiguracyjnym zawiera argumenty, których kontener używa po uruchomieniu. Pojemnik jest poinstruowany, aby spróbować wykorzystać 2 procesory za pomocą parametru „2”.

Podczas tworzenia zasobów w Kubernetes, takich jak wdrożenia i PODS, ważne jest, aby określić minimalną liczbę wymaganych zasobów (żądanie) i maksymalną liczbę dozwolonych zasobów (limit) dla każdego POD lub wdrożenia. Zapobiega to spożyciu zbyt wielu zasobów, co może spowodować, że inne aktywne strąki cierpieją z powodu zmniejszonej wydajności lub nawet awarii z powodu braku dostępnych zasobów na klastrze.

Krok 6: Utwórz kapsułkę

Teraz pokazujemy, jak utworzyć POD za pomocą następującego polecenia:

> kubectl Utwórz -f reqLimit.Yaml

Z poprzednich danych wyjściowych można zauważyć, że utworzono POD „CPU-DEMO”.

Krok 7: Sprawdź kapsułkę

W tym etapie sprawdzamy, czy utworzony kapsułek jest aktywny, czy nie z następującym poleceniem:

> kubectl get POD CPU-DEMO --Namespace = ABC

Krok 8: Wyświetl szczegóły POD

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

> kubectl get POD CPU-DEMO --output = yaml --namespace = ABC

Krok 9: Usuń kapsułkę

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

> Kubectl delete POD CPU-DEMO --Namespace = 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 reqlimit2

Plik konfiguracyjny z jednym kontenerem można znaleźć tutaj. Pojemnik prosi o 100 procesorów, co jest większym niż jakikolwiek węzeł, który może zapewnić klaster.

Krok 11: CreAte kapsuły

W tym kroku tworzymy POD z następującym poleceniem:

> kubectl Utwórz -f reqlimit2.Yaml

Krok 12: Wyświetl status POD

Teraz możesz zobaczyć STATus kapsułki z dołączonym tutaj poleceniem:

Dane wyjściowe pokazuje, że status POD jest w toku.

Krok 13: Zobacz informacje o POD

Teraz oglądamy szczegółowe informacje o kapsule, w tym wydarzenia z podanym poleceniem tutaj:

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

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

Krok 14: Usuń węzeł

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

> Kubectl delete POD CPU-DEMO-2 --Namespace = ABC

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

Wraz z rosnącą popularnością technologii kontenerów Kubernetes ważne jest, aby zrozumieć, w jaki sposób limity zasobów mogą wpłynąć na wydajność. Ustawienie limitów zasobów w kontenerze Kubernetes może pomóc Ci upewnić się, że aplikacje działają na ich optymalnym poziomie i że nie zużywają zbyt wielu zasobów z serwera hosta. Ograniczając zasoby, możesz uniknąć zmarnowanych redundantnych procesów, pomóż zapobiec awarii systemu z powodu wykorzystania i optymalizacji wydajności 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 użycie przepustowości sieci na kontener.

Wniosek

Ustawienie limitów zasobów kontenerowych Kubernetes jest kluczową częścią zarządzania środowiskiem przetwarzania w chmurze. Dzięki odpowiedniej konfiguracji możesz upewnić się, że każdy kontener ma dostęp do potrzebnych zasobów, ale nie tak bardzo, że wpływa na inne kontenery lub systemy. Pozwala to na bardziej wydajne i opłacalne wykorzystanie zasobów obliczeniowych. Ponadto, ograniczając, ile pamięci lub procesora może spożywać pojemnik, możesz zapobiec występowaniu awarii z powodu niekontrolowanych procesów lub nieoczekiwanych skoków w użyciu.