Co to jest bezgłowa usługa w Kubernetes?
W Kubernetes tworzona jest bezgłowa usługa bez użycia klastra adresu IP. W niektórych przypadkach nie potrzebujemy pojedynczego adresu IP dla klastra, więc użyliśmy bezgłowej usługi Kubernetes. W tej bezgłowej konfiguracji usługi może być nadal używana do utrzymania tożsamości sieciowej i DNS dla zbioru kapsułów, nawet jeśli nie można uzyskać do niej dostępu za pośrednictwem IP klaster. W większości używaliśmy bezgłowych, gdy wymagany był indywidualny dostęp do kapsuł bez użycia proxy. Nie możemy tutaj używać równoważenia obciążenia, ponieważ nie możemy pobierać adresów IP. Ta usługa jest często używana do aplikacji stanowych, takich jak bazy danych, gdzie kluczowe jest posiadanie spójnej tożsamości sieciowej dla każdej iteracji.
Wymagania wstępne
Użytkownik musi mieć najnowszą wersję Ubuntu zainstalowaną w swoim systemie i zrozumieć, które polecenie służy do uruchamiania wszystkich procesów. Użytkownik musi zapoznać się z Kubernetes, klastrami, kapsułami i wierszem poleceń Kubectl, a także zainstalować je w systemie. W przypadku użytkowników Windows Virtual Box lub VMware zapewnia jednocześnie obiekt korzystania z innego systemu operacyjnego. W przypadku użytkowników systemu Windows należy zainstalować wirtualne pole, a Ubuntu lub Linux powinni działać wydajnie. Po zainstalowaniu wszystkich pakietów, takich jak Kubernetes w aplikacji, zainstaluj minikube w aplikacji, a następnie przechodzimy w kierunku opisu usługi, który podzieliliśmy na różne kroki z odpowiednimi przykładami do zrozumienia. Spójrz więc na następujące:
Krok 1: Utwórz plik konfiguracyjny
Początkowo tworzymy plik konfiguracyjny, w którym szczegółowo wyjaśniamy wszystko o usługach bezgłowych. Tak więc uruchamiamy polecenie w klastrze lokalnym minikube dla pliku konfiguracyjnego:
> Nano Depplomani.YamlPo wykonywaniu wyżej wymienionych polecenia plik konfiguracyjny jest otwierany z nazwą „DEPLOMANI.YAML ”. Plik konfiguracyjny dla kontenera został pomyślnie utworzony, jak widać na załączonym zrzucie ekranu.
Krok 2: Wdrażaj plik konfiguracyjny w Kubernetes
W tym kroku dowiemy się, jak wdrożyć plik konfiguracyjny zdefiniowany w poprzednim kroku w Kubernetes. Uruchamiamy polecenie wdrażania plików w następujący sposób:
> kubectl Utwórz -f deplomani.YamlWdrożenie jest tworzone po wykonaniu tego polecenia. Pojemnik lub podnośnik jest z powodzeniem utworzony tutaj.
Krok 3: Utwórz manifest usług w Kubernetes
W tym kroku tworzymy plik, aby uruchomić zwykłą usługę w Kubernetes. Tak więc uruchamiamy polecenie, aby utworzyć manifest dla zwykłej usługi, czyli:
> Nano Regsev. YamlUruchom polecenie w terminalu i naciśnij Enter. Po uruchomieniu polecenia „Regsev.Plik YAML ”jest pomyślnie tworzony, jak pokazano na zrzucie ekranu poniżej. Tutaj rodzaj POD to serwis, nazwa POD jest regularna, a porty są połączone z adresami IP.
Krok 4: Wdrożenie manifestu zwykłego serwisu
Na tym etapie wdrażamy zdefiniowany manifest regularny w Kubernetes. Tak więc uruchamiamy tutaj polecenie w tym celu:
> kubectl Utwórz -f Regsev.YamlUsługa jest wdrażana i tworzona pomyślnie po wykonaniu polecenia.
Krok 5: Utwórz manifest usług bezgłowych
Na tym etapie chcemy stworzyć manifest usług, w którym definiujemy usługi bezgłowe. Tak więc uruchamiamy polecenie, aby utworzyć plik YAML:
> Nano Headsv.YamlWprowadź polecenie do wiersza polecenia Kubectl i naciśnij ENTER. Kiedy tworzymy manifest dla usługi bezgłowej w Kubernetes, możemy określić „Brak” jako IP klastra podczas definiowania usługi w pliku manifestu.
Krok 6: Wdrażaj usługę bezgłową
Ten krok obejmuje wdrożenie tego bezgłowego pliku YAML do Kubernetes. Więc uruchamiamy polecenie tutaj:
> kubectl Utwórz -f headsv. YamlPo wykonaniu poleceń, bezgłowa usługa systemu „bezgłowa SVC” jest pomyślnie utworzona. To polecenie tworzy usługę bez klastra IP, ale mimo to tworzy rekordy DNS dla POD, które pasują do selektora, abyśmy mogli do nich dotrzeć przez ich nazwy DNS.
Krok 7: Dodaj tymczasowy klaster w Kubernetes
W tym kroku uruchamiamy polecenie, aby utworzyć kilka tymczasowych klastrów, ustawiając ich obraz w aplikacji.
> Kubectl Uruchom tymczasowe --image = promieniowanie/busyboxplus: curl -i --ttyKiedy uruchamiamy polecenie, zrzut ekranu dołączony powyżej wyświetla tymczasowe klastry, które mają własne przestrzenie w zastosowaniu Kubernetes.
Krok 8: Pobierz serwer i adres IP bezgłowej usługi
W tym kroku chcemy zobaczyć adres serwera i adres IP bezgłowej usługi w Kubernetes. Uruchamiamy polecenie, które zwraca wartość jak adres i podaje ją z serwera DNS. Narzędzie wiersza polecenia wyszukiwania służy do zapytania o serwery DNS w celu uzyskania informacji.
> nslookup bezgłowy SVCTo polecenie dało nam serwer i IP, a wyszukiwanie zwróciło nam nazwę hosta „bezgłowego SVC.„Jeśli nazwa hosta nie zostanie rozwiązana, DNS zwraca komunikat o błędzie.
Krok 9: Usuń wszystkie uruchomione usługi w Kubernetes
W tym kroku kończymy wszystkie uruchomione usługi, ponieważ usługi te angażują przestrzeń i pamięć w aplikacjach Kubernetes. Po pierwsze, usuwamy zwykłą usługę z Kubernetes, uruchamiając polecenie:
> Kubectl Usuń regularną usługę SVCKiedy uruchamiamy to polecenie, „regularna obsługa” jest pomyślnie usunięta.
Teraz usuwamy bezgłową usługę z klastra Kubernetes. Uruchamiamy polecenie Usuń, wprowadzając bezgłową nazwę usługi „Headless-SVC” w narzędziu linii poleceń Kubectl.
> Kubectl Usuń SVC bezgłowy SVCTo polecenie z powodzeniem kończy bezgłową usługę z klastra Kubernetes.
Następnym krokiem jest usunięcie wdrożeń po zakończeniu wszystkich usług z aplikacji Kubernetes. Uruchamiamy polecenie, aby usunąć wdrożenie aplikacji.
> Kubectl Usuń aplikację wdrażaniaW rezultacie wdrażanie aplikacji można łatwo usunąć za pomocą polecenia.
Na koniec stworzyliśmy tymczasowy kapsułek w powyższej sesji. Tutaj widzimy również usunięcie tych tymczasowych strąków z Kubernetes. Uruchamiamy polecenie do usunięcia:
> Kubectl delete POD tymczasowoUsługi i kapsuły Kubernetes zostały pomyślnie usunięte.
Wniosek
Usługi bezgłowe są bardzo pomocne w obsłudze usług w Kubernetes. Bezgłowe usługi zapewniają klaster bez adresu IP. Nauczyliśmy się również, w jaki sposób usunęliśmy uruchomione usługi z Kubernetes, gdy nie ma potrzeby tych usług. Możesz także ćwiczyć te przykłady w swojej aplikacji.