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

Tworzenie dodatkowych podgrup w klastrze Kubernetes na platformie NSIS OpenStack Magnum

Korzyści płynące z używania Nodegroups

nodegroup to grupa węzłów z klastra Kubernetes, które mają tę samą konfigurację i uruchamiają kontenery użytkownika. Jeden i ten sam klaster może mieć w sobie różne 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 oddziela role w klastrze i może

  • ograniczyć zakres szkód, jeśli dana grupa zostanie naruszona,

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

  • tworzenie zakresów uprawnień do określonych typów węzłów i powiązanych obciążeń.

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

  • do celów testowych,

  • Jeśli środowisko Kubernetes ma niewielkie zasoby, można utworzyć minimalny klaster Kubernetes, a później dodać grupy węzłów 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 będziemy omawiać

  • Struktura polecenia openstack coe nodelist

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

  • Jak wyświetlić listę grup węzłów dostępnych w klastrze?

  • Jak pokazać zawartość jednej konkretnej nodegrupy w klastrze?

  • Jak utworzyć nową nodegrupę?

  • Jak usunąć istniejącą nodegrupę?

  • Jak aktualizować nodegrupy

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

  • Korzyści z używania grup węzłów w klastrach Kubernetes

Wymagania wstępne

Nr 1 Hosting

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

Nr 2 Tworzenie 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łącz klienta openstack do chmury

Przygotuj klientów openstack i magnum, wykonując Krok 2 Podłącz 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 Sprawdź dostępne kwoty

Przed utworzeniem dodatkowych grup węzłów sprawdź stan zasobów za pomocą poleceń Horizon Computer => Overview. Zobacz 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 temu 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 grup węzłowych

Oto, które klastry są dostępne w systemie:

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

Domyślny proces tworzenia klastrów Kubernetes na OpenStack Magnum tworzy dwie grupy węzłów, 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 grup węzłów dla tych dwóch 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. Oto ogólna struktura:

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 nodegroup składającą się z dwóch członków, będzie się nazywać testing, rola będzie się nazywać 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ę grup węzłów. Za pierwszym razem będzie w stanie tworzenia, za drugim razem, po kilku sekundach, zostanie już utworzona.

../_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 stos 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 role do filtrowania grup węzłowych w klastrze

Możliwe jest filtrowanie grup węzłów według roli. Oto polecenie pokazujące tylko grupę węzłów test:

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: Pokaż szczegóły utworzonej grupy węzłów

Komenda show prezentuje szczegóły nodegroup 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:

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

Krok 5: Usuń istniejącą grupę węzłową

W tym kroku należy spróbować utworzyć grupę węzłów o niewielkiej powierzchni:

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, więc oto jak je 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 za pośrednictwem interfejsu Horizon. Znajdź istniejące instancje za pomocą poleceń Compute => Instance i filtruj według Instance Name, z tekstem k8s-cluster-cirros-. Może to wyglądać następująco:

../_images/filtered_cirros1.png

a następnie usunąć je, klikając czerwony przycisk Usuń instancje.

W prawym górnym rogu pojawi się tekst potwierdzenia w chmurze.

Niezależnie od sposobu, 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 Zaktualizuj istniejącą grupę węzłową

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

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

Zamiast replace, możliwe jest również użycie czasowników add i delete.

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

Krok 7 Zmiana rozmiaru grupy węzłów

Zmiana rozmiaru nodegroup jest podobna do zmiany rozmiaru klastra, z dodatkiem parametru –nodegroup. Obecnie liczba węzłów w grupie testing wynosi 2. Ustaw ją na 1:

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

Aby zobaczyć wynik, zastosuj polecenie

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

i otrzymać:

../_images/nodegroup_resized1.png

Klaster nie może być skalowany poza min-węzły/maks-węzły ustawione 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