Jak korzystać z węzła Kubernetes nodeSelector

Jak Korzystac Z Wezla Kubernetes Nodeselector



Klaster Kubernetes używa ograniczeń planowania, takich jak: tainty, etykiety, tolerancje i nodeSelector, aby segregować i planować obciążenie w różnych pulach węzłów. Ograniczenia planowania są powszechnym wymaganiem w Kubernetes w zakresie zarządzania infrastrukturą. W tym artykule skupimy się na ograniczeniach planowania nodeSelector. Będziemy badać, czym jest nodeSelector, jak działa i jak można go używać w Kubernetes. Przedstawimy prosty scenariusz, który pomoże Ci zrozumieć, jak efektywnie korzystać z węzła Kubernetes nodeSelector.

Co to jest Kubernetes nodeSelector?

NodeSelector to ograniczenie planowania w Kubernetes, które określa mapę w postaci klucza: niestandardowe selektory pod parą wartości i etykiety węzłów są używane do definiowania pary klucz-wartość. NodeSelector oznaczony na węźle powinien pasować do pary klucz: wartość, aby określony pod mógł zostać uruchomiony w określonym węźle. Aby zaplanować pod, etykiety są używane w węzłach, a nodeSelectors są używane w podach. Platforma kontenerowa OpenShift planuje pody w węzłach za pomocą narzędzia nodeSelector, dopasowując etykiety.

Ponadto etykiety i nodeSelector służą do kontrolowania, który pod ma zostać zaplanowany w określonym węźle. Gdy używasz etykiet i nodeSelector, najpierw oznacz węzeł, aby strąki nie zostały anulowane, a następnie dodaj nodeSelector do poda. Aby umieścić określoną kapsułę na określonym węźle, używany jest nodeSelector, podczas gdy obejmujący cały klaster nodeSelector pozwala umieścić nowy kapsułę na określonym węźle obecnym w dowolnym miejscu klastra. Projekt nodeSelector służy do umieszczania nowego pod na określonym węźle w projekcie.







Wymagania wstępne

Aby korzystać z narzędzia Kubernetes nodeSelector, upewnij się, że w systemie są zainstalowane następujące narzędzia:



  • Ubuntu 20.04 lub inna najnowsza wersja
  • Klaster Minikube z co najmniej jednym węzłem roboczym
  • Narzędzie wiersza poleceń Kubectl

Teraz przechodzimy do następnej sekcji, w której zademonstrujemy, jak można używać nodeSelector w klastrze Kubernetes.



nodeSelector Konfiguracja w Kubernetes

Pod można ograniczyć, aby mógł działać tylko w określonym węźle za pomocą nodeSelector. NodeSelector to ograniczenie wyboru węzła, które jest określone w specyfikacji PodSpec. Mówiąc prościej, nodeSelector to funkcja planowania, która daje kontrolę nad kapsułą w celu zaplanowania kapsuły w węźle mającym tę samą etykietę określoną przez użytkownika dla etykiety nodeSelector. Aby używać lub konfigurować nodeSelector w Kubernetes, potrzebujesz klastra minikube. Uruchom klaster minikube za pomocą polecenia podanego poniżej:





> uruchom minikuba

Po pomyślnym uruchomieniu klastra minikube możemy przystąpić do implementacji konfiguracji nodeSelector w Kubernetes. W tym dokumencie poprowadzimy Cię przez proces tworzenia dwóch wdrożeń, jednego bez żadnego elementu nodeSelector, a drugiego z elementem nodeSelector.



Skonfiguruj wdrożenie bez nodeSelector

Najpierw wyodrębnimy szczegóły wszystkich węzłów, które są obecnie aktywne w klastrze, używając polecenia podanego poniżej:

> kubectl pobierz węzły

To polecenie wyświetli listę wszystkich węzłów obecnych w klastrze ze szczegółami dotyczącymi nazwy, statusu, ról, wieku i parametrów wersji. Zobacz przykładowe dane wyjściowe podane poniżej:

Teraz sprawdzimy, jakie skazy są aktywne w węzłach w klastrze, abyśmy mogli odpowiednio zaplanować wdrożenie podów w węźle. Poniższe polecenie służy do uzyskania opisu skaz zastosowanych w węźle. W węźle nie powinno być aktywnych skaz, aby łatwo można było na nim wdrożyć pody. Zobaczmy więc, jakie skazy są aktywne w klastrze, wykonując następujące polecenie:

> kubectl opisuje węzły minikube | chwyt Skaza

Z danych wyjściowych podanych powyżej możemy zobaczyć, że w węźle nie zastosowano skazy, tylko dokładnie to, czego potrzebujemy do wdrożenia podów w węźle. Teraz następnym krokiem jest utworzenie wdrożenia bez określania w nim żadnego węzła nodeSelector. Jeśli o to chodzi, będziemy używać pliku YAML, w którym będziemy przechowywać konfigurację nodeSelector. Załączone tutaj polecenie zostanie użyte do utworzenia pliku YAML:

> nano deplond.yaml

Tutaj próbujemy utworzyć plik YAML o nazwie deplond.yaml za pomocą polecenia nano.

Po wykonaniu tego polecenia będziemy mieć plik deplond.yaml, w którym będziemy przechowywać konfigurację wdrożenia. Zobacz konfigurację wdrożenia podaną poniżej:

Teraz utworzymy wdrożenie przy użyciu pliku konfiguracyjnego wdrożenia. Plik deplond.yaml zostanie użyty wraz z poleceniem „create” do utworzenia konfiguracji. Zobacz pełne polecenie podane poniżej:

> utwórz kubectl -f deplond.yaml

Jak pokazano powyżej, wdrożenie zostało pomyślnie utworzone, ale bez nodeSelector. Teraz sprawdźmy węzły, które są już dostępne w klastrze za pomocą polecenia podanego poniżej:

> kubectl pobiera strąki

Spowoduje to wyświetlenie wszystkich podów dostępnych w klastrze. Zobacz dane wyjściowe podane poniżej:

  Opis tekstowy generowany automatycznie

Następnie musimy zmienić liczbę replik, co można zrobić, edytując plik deplond.yaml. Wystarczy otworzyć plik deplond.yaml i edytować wartość replik. Tutaj zmieniamy repliki: 3 na repliki: 30. Zobacz modyfikację w migawce podanej poniżej:

Teraz zmiany należy zastosować do wdrożenia z pliku definicji wdrożenia, co można zrobić za pomocą następującego polecenia:

> kubectl stosuje się -f deplond.yaml

  Opis tekstowy generowany automatycznie

Teraz sprawdźmy więcej szczegółów strąków, używając opcji -o wide:

> kubectl pobiera strąki -The szeroki

  Opis tekstowy generowany automatycznie

Z danych wyjściowych podanych powyżej możemy zobaczyć, że nowe węzły zostały utworzone i zaplanowane w węźle, ponieważ w węźle, którego używamy, z klastra nie ma aktywnego skażenia. W związku z tym szczególnie musimy aktywować skażenie, aby mieć pewność, że strąki zostaną zaplanowane tylko w żądanym węźle. W tym celu musimy utworzyć etykietę w węźle głównym:

> kubectl label nodes master on-master= PRAWDA

Skonfiguruj wdrożenie za pomocą nodeSelector

Aby skonfigurować wdrożenie za pomocą elementu nodeSelector, wykonamy ten sam proces, co w przypadku konfiguracji wdrożenia bez elementu nodeSelector.

Najpierw utworzymy plik YAML za pomocą polecenia „nano”, w którym będziemy przechowywać konfigurację wdrożenia.

> nano nd.yaml

Teraz Zapisz definicję wdrożenia w pliku. Możesz porównać oba pliki konfiguracyjne, aby zobaczyć różnicę między definicjami konfiguracji.

Teraz utwórz wdrożenie nodeSelector za pomocą polecenia podanego poniżej:

> utwórz kubectl -f nd.yaml

Uzyskaj szczegółowe informacje o strąkach, używając flagi -o wide:

> kubectl pobiera strąki -The szeroki

  Tekst, kalendarz Opis generowany automatycznie ze średnią pewnością

Z danych wyjściowych podanych powyżej możemy zauważyć, że pody są wdrażane w węźle minikube. Zmieńmy liczbę replik, aby sprawdzić, gdzie w klastrze zostaną wdrożone nowe zasobniki.

Zastosuj nowe zmiany we wdrożeniu za pomocą następującego polecenia:

> kubectl stosuje się -f nd.yaml

  Opis tekstowy generowany automatycznie

Wniosek

W tym artykule mieliśmy przegląd ograniczeń konfiguracyjnych nodeSelector w Kubernetes. Dowiedzieliśmy się, czym jest nodeSelector w Kubernetes i za pomocą prostego scenariusza dowiedzieliśmy się, jak stworzyć wdrożenie z ograniczeniami konfiguracyjnymi nodeSelector i bez nich. Możesz zapoznać się z tym artykułem, jeśli jesteś nowy w koncepcji nodeSelector i znaleźć wszystkie istotne informacje.