Skip to main content
  • »
  • KUBERNETES »
  • Tworzenie dodatkowych nodegroups w klastrze Kubernetes na platformie NSIS OpenStack Magnum
  • NSIS Cloud

Tworzenie dodatkowych nodegroups w klastrze Kubernetes na platformie NSIS OpenStack Magnum

Korzyści wynikające z używania nodegroups

Nodegroup to grupa węzłów klastra Kubernetes, które mają tę samą konfigurację i uruchamiają kontenery użytkownika. Jeden klaster może zawierać wiele nodegroups, więc zamiast tworzyć kilka niezależnych klastrów, można utworzyć tylko jeden, a następnie rozdzielić grupy na nodegroups.

Grupa węzłów rozdziela role w klastrze i może

  • ograniczyć zakres szkód, jeśli dana grupa ulegnie uszkodzeniu,

  • regulować liczbę żądań API pochodzących od określonej grupy, oraz

  • określać zakresy uprawnień do poszczególnych typów węzłów i powiązanych z nimi obciążeń.

Inne zastosowania ról nodegroups obejmują również:

  • cele testowe,

  • Jeśli środowisko Kubernetes ma niewielkie zasoby, można utworzyć minimalny klaster Kubernetes, a następnie dodać nodegroups i w ten sposób zwiększyć liczbę węzłów kontrolnych i roboczych.

  • Węzły w grupie mogą być tworzone, aktualizowane i usuwane indywidualnie bez wpływu na resztę klastra.

Co zostanie omówione?

  • Struktura polecenia openstack coe nodelist

  • Jak wygenerować zarządzalne dane wyjściowe z zestawu poleceń nodelist

  • Jak wyświetlić listę nodegroups dostępnych w klastrze

  • Jak wyświetlić zawartość konkretnej grupy węzłów w klastrze

  • Jak utworzyć nową grupę węzłów

  • Jak usunąć istniejącą grupę węzłów?

  • Jak aktualizować nodegropus

  • Jak zmieniać rozmiar grupy węzłów

  • Korzyści z używania nodegrops w klastrach Kubernetes

Wymagania wstępne

Nr 1 Hosting

Wymagane jest konto hostingowe NSIS z interfejsem Horizon https://horizon.cloudferro.com.

Nr 2 Utworzenie klastrów za pomocą CLI

Artykuł Jak korzystać z interfejsu wiersza poleceń dla klastrów Kubernetes w NSIS OpenStack Magnum wprowadzi cię w tworzenie klastrów za pomocą interfejsu wiersza poleceń.

Nr 3 Podłączenie klienta openstack do chmury

Przygotuj klienty openstack i magnum, wykonując Krok 2 Podłączanie klientów OpenStack i Magnum do chmury Horizon z artykułu Jak zainstalować klientów OpenStack i Magnum dla interfejsu wiersza poleceń w NSIS Horizon?.

Nr 4 Sprawdzenie dostępnych kwot

Przed utworzeniem dodatkowych grup węzłów sprawdź stan zasobów za pomocą poleceń Horizon Computer => Overview. Zobacz artykuł Pogląd dashboardu – quoty projektów i ograniczenia flavorów na NSIS Cloud.

Podpolecenia nodegroup

Po utworzeniu klastra Kubernetes na platformie OpenStack Magnum dostępnych jest pięć poleceń nodegroup:

openstack coe nodegroup create

openstack coe nodegroup delete

openstack coe nodegroup list

openstack coe nodegroup show

openstack coe nodegroup update

Dzięki nim można zmienić przeznaczenie klastra, aby uwzględnić różne obrazy, zmienić dostęp do woluminów, ustawić maksymalne i minimalne wartości dla liczby węzłów i tak dalej.

Krok 1 Uzyskaj dostęp do aktualnego stanu klastrów i ich nodegroups

Klastry dostępne w systemie można wyświetlić za pomocą polecenia:

openstack coe cluster list --max-width 120
../_images/present_clusters1.png

Domyślny proces tworzenia klastrów Kubernetes na OpenStack Magnum tworzy dwie nodegroups – default-master i default-worker. Użyj poleceń

openstack coe nodegroup list kubelbtrue

openstack coe nodegroup list k8s-cluster

aby wyświetlić listę domyślnych nodegroups dla obu klastrów kubelbtrue i k8s-cluster.

../_images/listing_nodegroups1.png

Grupa węzłów default-worker nie może zostać usunięta ani ponownie skonfigurowana, więc należy ją zaplanować z wyprzedzeniem podczas tworzenia klastra bazowego.

Krok 2: Jak utworzyć nową grupę węzłów

W tym kroku poznasz parametry dostępne dla polecenia nodegroup create. Jego ogólna struktura jest następująca:

openstack coe nodegroup create [-h]
[--docker-volume-size <docker-volume-size>]
[--labels <KEY1=VALUE1,KEY2=VALUE2;KEY3=VALUE3...>]
[--node-count <node-count>]
[--min-nodes <min-nodes>]
[--max-nodes <max-nodes>]
[--role <role>]
[--image <image>]
[--flavor <flavor>]
[--merge-labels]
<cluster> <name>

Teraz utworzysz grupę węzłów składającą się z dwóch członków. Grupa będzie się nazywać testing, jej rolą będzie test i dodasz ją do klastra k8s-cluster:

openstack coe nodegroup create \
--node-count 2 \
--role test \
k8s-cluster testing

Następnie użyj polecenia

openstack coe nodegroup list k8s-cluster

aby dwukrotnie wyświetlić listę nodegroups. Za pierwszym razem będą one w stanie tworzenia, za drugim razem, po kilku sekundach, zostaną już utworzone.

../_images/created_new_nodegroup1.png

W Horizon użyj polecenia Orchestration => Stacks, aby wyświetlić listę mechanizmów tworzących nowe instancje. W tym przypadku stack wygląda następująco:

../_images/stacks_creations1.png

Pozostając w Horizon, kliknij polecenia Contaner Infra => Clusters => k8s-clusters i zobacz, że w sumie jest teraz pięć węzłów:

../_images/cluster_inside1.png

Krok 3 Użycie opcji role do filtrowania nodegroups w klastrze

Grupy węzłów mogą być filtrowane według roli. Polecenie pokazujące tylko grupę węzłów test jest następujące:

openstack coe nodegroup list k8s-cluster --role test
../_images/role_test1.png

Kilka grup węzłów może współdzielić tę samą nazwę roli.

Role mogą być używane do planowania węzłów podczas korzystania z polecenia kubectl bezpośrednio na klastrze.

Krok 4: Wyświetlenie informacji szczegółowych o utworzonej grupie węzłów

Polecenie show wyświetla informacje szczegółowe o grupie węzłów w różnych formatach - json, table, shell, value lub yaml. Domyślnym formatem jest table, ale użyj parametru –max-width, aby ograniczyć liczbę kolumn w tabeli:

openstack coe nodegroup show --max-width 80 k8s-cluster testing
../_images/table_testing1.png

Krok 5: Usunięcie istniejącej grupy węzłów

W tym kroku spróbujesz utworzyć grupę węzłów o niewielkim rozmiarze:

openstack coe nodegroup create \
--node-count 2 \
--role test \
--image cirros-0.4.0-x86_64-2 \
--flavor eo1.xsmall \
k8s-cluster cirros

Po godzinie polecenie zostało anulowane, a tworzenie nie powiodło się. Zasoby pozostaną jednak zamrożone w systemie, należy je zatem usunąć.

Jednym ze sposobów jest użycie podpolecenia CLI delete, jak poniżej:

openstack coe nodegroup delete k8s-cluster cirros

Status zostanie zmieniony na DELETE_IN_PROGRESS.

Innym sposobem jest znalezienie instancji tych utworzonych węzłów i usunięcie ich w interfejsie Horizon. Znajdź istniejące instancje za pomocą poleceń Compute => Instance i przefiltruj je według Instance Name z tekstem k8s-cluster-cirros-. Może to wyglądać następująco:

../_images/filtered_cirros1.png

Następnie usuń je, klikając czerwony przycisk Delete Instances.

W prawym górnym rogu zostanie wyświetlony tekst potwierdzenia w chmurze.

Niezależnie od wybranej metody, instancje nie zostaną usunięte natychmiast, ale raczej zaplanowane do usunięcia w najbliższej przyszłości.

Domyślne grupy węzłów głównych i roboczych nie mogą zostać usunięte, ale wszystkie inne mogą.

Krok 6 Aktualizacja istniejącej grupy węzłów

W tym kroku bezpośrednio zaktualizujesz istniejącą grupę węzłów, zamiast dodawać i usuwać je po kolei. Przykładowe polecenie to:

openstack coe nodegroup update k8s-cluster testing replace min_node_count=1

Zamiast replace można też użyć czasowników add i delete.

W powyższym przykładzie ustawiono minimalną wartość liczby węzłów na 1. Poprzednio ta wartość wynosiła 0, ponieważ parametr min_node_count nie został określony, a jego domyślną wartością jest 0.

Krok 7 Zmiana wielkości grupy węzłów

Zmiana wielkości grupy węzłów jest podobna do zmiany rozmiaru klastra, z dodanym parametrem –nodegroup. Obecnie liczba węzłów w grupie testing wynosi2. Ustaw ją na 1:

openstack coe cluster resize k8s-cluster --nodegroup testing 1

Aby zobaczyć wynik, wykonaj polecenie

openstack coe nodegroup list --max-width 120 k8s-cluster

Otrzymasz następujący wynik:

../_images/nodegroup_resized1.png

Klaster nie może być skalowany poza minimalną i maksymalną liczbę węzłów ustawionymi podczas tworzenia grupy węzłów.

Oto jak wygląda stan sieci po tych wszystkich zmianach (polecenia Network => Network Topology => Small w interfejsie Horizon):

../_images/nodegroups_network_graph1.png