Jak stworzyć zestaw stanu w Kubernetes

Jak stworzyć zestaw stanu w Kubernetes
W tym przewodniku zdefiniujemy, jak wygenerować zestaw stanu w Kubernetes. Ten przewodnik pomoże Ci zarządzać aplikacjami Kubernetes z Statefulset, pokazując, jak tworzyć, aktualizować, skalować i usuwać kapsuły Statefulset. Statefulsets są wykorzystywane w systemach rozproszonych i aplikacjach państwowych. Zanim zaczniesz nauczyć się tworzyć statefulset w Kubernetes, powinieneś zapoznać się z podstawami systemów rozproszonych i administracji aplikacji w Kubernetes. Do końca tego artykułu będziesz mógł tworzyć, skalować, aktualizować i usuwać zestaw stanu w Kubernetes.

Wymagania wstępne

Ubuntu 20.02 lub dowolna inna najnowsza wersja Ubuntu powinna być zainstalowana w twoim systemie. Włącz maszynę wirtualną w systemie Ubuntu, aby wykonać polecenia Kubernetes. Musisz zapoznać się z kapsułkami, klastrowymi DNS, Statefulsets i narzędziem wiersza poleceń Kubectl.

Postępuj zgodnie z tym przewodnikiem krok po kroku, aby dowiedzieć się, jak utworzyć zestaw stanu w Kubernetes:

Krok #1: Rozpocznij pulpit Kubernetes

Aby uruchomić aplikację Kubernetes lub polecenia w aplikacji Kubernetes, musisz mieć uruchomiony terminal Kubernetes. „Minikube” to terminal Kubernetes, który służy do wykonywania różnych poleceń w aplikacjach Kubernetes. Użyj poniższego polecenia, aby uruchomić minikube:

Kalsoom@VirtualBox> Minikube start

Po wprowadzeniu tego polecenia na terminalu Kubernetes naciśnij ENTER, aby go wykonać. Po wdrożeniu instrukcji otrzymasz następujący wynik:

Krok #2: Otwórz/Utwórz plik YAML

Następnym krokiem jest otwarcie pliku YAML, jeśli masz już utworzony plik. W przeciwnym razie możesz utworzyć nowy plik YAML, który ma być używany do tworzenia statefulset. Kubernetes zapewnia polecenie „Nano” do utworzenia lub otwarcia pliku w systemie Kubernetes. Podaj nazwę pliku z rozszerzeniem pliku i uruchom na nim polecenie Nano. Zobacz polecenie podane poniżej:

kalsoom@virtualbox> nano textweb.Yaml

Po wykonaniu tego polecenia w terminalu Kubernetes zobaczysz następujący plik otwarty w terminalu Kubernetes:

Krok #3: Utwórz konfigurację z pliku YAML

Polecenie „Kubectl Utwórz” służy do utworzenia konfiguracji dla usług. Mamy plik YAML i wszystkie specyfikacje dla usługi Statefulset wymienionych w pliku. Plik będzie używany z poleceniem „Utwórz”, aby bezpośrednio utworzyć zasób Kubernetes na terminalu Kubernetes. Zobacz polecenie podane poniżej, aby bezpośrednio utworzyć zasoby Kubernetes:

kalsoom@virtualbox> kubectl Utwórz -f testWeb.Yaml

Po pomyślnym wykonaniu polecenia zobaczysz komunikat „utworzony” na terminalu. Za pomocą tego polecenia zostaną utworzone dwa kapsuły, a każdy z nich będzie działał w serwisie sieciowym Nginx.

Krok #4: Utwórz kapsuły Statefulset

Następnym krokiem jest utworzenie kapsuł dla statefulset. Polecenie używane do utworzenia kapsuł dla Statefulset podano poniżej:

kalsoom@virtualbox> kubectl pobierz pods -w -l app = nginx

Po wykonaniu tego polecenia zobaczysz następujący wynik na terminalu Kubernetes:

Krok #5: Uzyskaj usługi Nginx Webserver

Jak utworzyliśmy dwa podski w poprzednim kroku i każdy z nich działa na serwerze Nginx, uzyskajmy usługi tych kapsułów z serwera internetowego Nginx. Użyj następującego polecenia, aby uzyskać usługi Nginx:

kalsoom@virtualbox> kubectl get Service nginx

Napisz to polecenie na terminalu minikube i naciśnij polecenie Enter, aby je wykonać i zobacz następujący wynik:

Krok #5: Zdobądź Web Statefulset

Kolejnym krokiem jest potwierdzenie, że oba kapsuły zostały pomyślnie utworzone i można to zrobić za pomocą Web Statefulset. Aby uzyskać Web Statefulset, użyj następującego polecenia:

Kalsoom@VirtualBox> Kubectl Get Statefulset Web

Napisz to polecenie na terminalu Kubernetes, po wykonaniu otrzymasz następujące dane wyjściowe:

Krok #6: Utwórz uporządkowane repliki statefulset

Krągi dla statefulset z wieloma replikami są tworzone w kolejności sekwencyjnej. Każdy kapsułek jest wdrażany w sekwencji 0 do N-1. Skonfigurujmy kolejność utworzonych kapsuł w terminalu. Użyj polecenia „kubectl get”, aby skonfigurować zamówienie. Zobacz pełne polecenie poniżej:

kalsoom@virtualbox> kubectl pobierz pods -w -l app = nginx

Po wykonaniu tego polecenia w terminalu Kubernetes wyjście ostatecznie będzie wyglądało jak ten podany w fragmencie poniżej:

Jak widać na wyjściu, dopóki nie uruchomi się Web-0, kapsułka Web-1 nie została uruchomiona.

Krok #7: Zbadaj wskaźnik porządkowy PODS

Krągi są tworzone z indeksem porządkowym, a także mają stabilną tożsamość sieciową, zbadajmy indeks porządkowy strąków statefulset za pomocą następującego polecenia:

kalsoom@virtualbox> kubectl get pods -l app = nginx

To polecenie pokaże unikalną tożsamość POD na podstawie unikalnego indeksu porządkowego, który został przypisany przez kontroler StateFulset do każdego kapsułki. Nazwa kompletnego kapsuła jest podana jako - a dwa strąki zostaną utworzone dla sieci Web StateSet, ponieważ ma dwie repliki. Teraz zobaczmy poniższe dane:

Krok #8: Wdrożenie instrukcji nazwy hosta w każdym POD

Stałą nazwę hosta została przydzielona do każdego kapsule uzasadnionego w indeksie porządkowym. Aby zaimplementować nazwę hosta przypisaną do każdego POD, możemy użyć następującego polecenia:

kalsoom@virtualbox> dla i w 0 1; do Kubectl Exec "Web -$ i" -sh -c 'hostName'; zrobione

To polecenie pokaże dwie repliki kapsuły. Zobacz dane wyjściowe podane w fragmencie poniżej:

Krok #8: Zbadaj adresy DNS w klastrze

Adresy DNS w klastrze kapsuły są badane za pomocą „nslookup”. Pakiet „DNSUTILS” zapewnia funkcjonalność „nslookup” do wykonania polecenia „Kubectl Run” na kontenerze Statefulset. Pełne polecenie jest podane poniżej dla twoich wskazówek:

Kalsoom@VirtualBox> Kubectl Run -i - -tty --Mage zajęty: 1.28 DNS-TEST-RESTART = nigdy--RM

To uruchomi nową powłokę, w której możesz wykonać pojemnik tekstowy DNS za pomocą następującego polecenia:

kalsoom@virtualbox> nSlookup Web-O.nginx

Po wykonaniu tego polecenia podobne dane wyjściowe będzie dostępne na terminalu:

Teraz sprawdź status kapsułów statefulset, a następnie wyjdź z powłoki kontenerowej. Ponownie, użyj polecenia „Kubectl Get”, aby zobaczyć strąki statefulset.

Krok #9: Usuń kapsuły w Statefulset

Ostatnim krokiem jest wymazanie wszystkich strąków w statefulset. I w tym celu możesz ćwiczyć instrukcję „Kubectl Usuń”. Zobacz pełne polecenie podane poniżej:

kalsoom@virtualbox> kubectl delete POD -l app = nginx

Po uruchomieniu tego polecenia w terminalu Kubernetes wyjście ostatecznie będzie wyglądać tak:

Wniosek

W tym artykule nauczyliśmy się tworzyć, aktualizować i usuwać kapsuły w statefulsku Kubernetes. Użyliśmy różnych poleceń kubectl do skonfigurowania kapsuł w Statefulset. Plik YAML został użyty do definicji usług kapsułów i do skonfigurowania tych usług w Statefulset