Udostępnij za pośrednictwem


Używanie rozwiązania Bridge do platformy Kubernetes z przykładem

W tym przykładzie pokazano, jak za pomocą rozwiązania Bridge to Kubernetes można utworzyć mikrousługę prostej aplikacji TODO w dowolnym klastrze Kubernetes. Ten przykład, używając programu Visual Studio Code, został dostosowany z kodu dostarczonego przez todoMVC. W tym przykładzie użyjemy narzędzia MiniKube do hostowania aplikacji, ale te kroki powinny działać z dowolnym klastrem Kubernetes.

Przykład aplikacji TODO składa się z frontonu i zaplecza, który zapewnia magazyn trwały. Ten rozszerzony przykład dodaje składnik statystyk i dzieli aplikację na wiele mikrousług, w szczególności:

  • Fronton wywołuje interfejs API bazy danych w celu utrwalania i aktualizowania elementów ZADAŃ DO WYKONANIA;
  • Usługa interfejsu API bazy danych korzysta z bazy danych Mongo w celu utrwalania elementów zadań do wykonania;
  • Fronton zapisuje zdarzenia dodawania, uzupełniania i usuwania zdarzeń do kolejki RabbitMQ;
  • Proces roboczy statystyk odbiera zdarzenia z kolejki RabbitMQ i aktualizuje pamięć podręczną Redis Cache;
  • Interfejs API statystyk uwidacznia buforowane statystyki dla frontonu do pokazania.

W sumie ta rozszerzona aplikacja TODO składa się z sześciu powiązanych składników.

Wymagania wstępne

Instalowanie aplikacji MiniKube

Możesz użyć dowolnego dostawcy Kubernetes z rozwiązaniem Bridge to Kubernetes. W tym artykule użyjemy narzędzia MiniKube. MiniKube to lekki dostawca kubernetes, który umożliwia hostowanie platformy Kubernetes na komputerze lokalnym. Postępuj zgodnie z instrukcjami instalacji, aby zainstalować aplikację MiniKube w systemie Windows 10, Linux lub macOS.

Aby uzyskać najlepsze wyniki w systemie Windows 10, należy użyć menedżera maszyny wirtualnej funkcji Hyper-V i utworzyć przełącznik wirtualny.

Po zainstalowaniu uruchom narzędzie MiniKube, określ, aby używać funkcji Hyper-V i podaj nazwę podstawowego przełącznika wirtualnego. To polecenie musi zostać uruchomione z poziomu wiersza polecenia z uprawnieniami Administracja istratora.

minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"

Wdrażanie aplikacji

Sklonuj repozytorium Bridge to Kubernetes i otwórz okno polecenia z bieżącym folderem roboczym do wykonania aplikacji.

Utwórz przestrzeń nazw dla przykładu.

kubectl create namespace todo-app

Następnie zastosuj manifest wdrożenia:

kubectl apply -n todo-app -f deployment.yaml

Jest to proste wdrożenie, które uwidacznia fronton przy użyciu usługi typu LoadBalancer. Poczekaj, aż wszystkie zasobniki będą uruchomione, a zewnętrzny adres IP frontend usługi stanie się dostępny.

Jeśli testujesz za pomocą aplikacji MiniKube, musisz użyć polecenia minikube tunnel , aby rozpoznać zewnętrzny adres IP.

kubectl get services -n todo-app

NAME          TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE
frontend      LoadBalancer   10.0.49.177    127.0.0.1   80:30145/TCP   18h

Przejdź do aplikacji przy użyciu zewnętrznego adresu IP i portu lokalnego (pierwszy numer w kolumnie PORT(S).

http://{external-ip}:{local-port}

Przetestuj uruchomioną aplikację w przeglądarce. Podczas dodawania, uzupełniania i usuwania zadań do wykonania zwróć uwagę, że strona statystyk zostanie zaktualizowana o oczekiwane metryki.

Debugowanie usługi stats-api

Teraz możesz użyć rozszerzenia Bridge to Kubernetes, aby zademonstrować sposób przekierowywania ruchu z klastra Kubernetes do lokalnie uruchomionej wersji interfejsu stats-api.

cd stats-api/

Otwórz kod źródłowy dla interfejsu stats-api w programie VS Code.

code .

Po uruchomieniu programu VS Code otwórz okienko Kubernetes z lewego paska bocznego programu VS Code, a następnie wybierz przestrzeń nazw todo-app w klastrze MiniKube. Kliknij prawym przyciskiem myszy węzeł todo-app , a następnie wybierz polecenie Użyj przestrzeni nazw.

Wybierz przestrzeń nazw

Zainstaluj zależności, uruchamiając polecenie npm install w oknie terminalu (CTRL + ~).

npm install

Następnie umieść punkt przerwania w wierszu 17 z server.js.

Otwórz paletę poleceń (CTRL+SHIFT+P lub Cmd+Shift+P na komputerze Mac) i wpisz Bridge to Kubernetes. Wybierz opcję Bridge to Kubernetes: Configure (Mostek do platformy Kubernetes: Konfiguruj ).

Mostek do platformy Kubernetes: konfigurowanie polecenia

Zostanie wyświetlony monit o skonfigurowanie usługi, którą chcesz zamienić, port do przekazania z komputera programistycznego i zadanie uruchamiania do użycia.

Wybierz usługę stats-api .

Wybierz usługę, z którymi chcesz nawiązać połączenie

Po wybraniu usługi zostanie wyświetlony monit o wprowadzenie portu TCP dla aplikacji lokalnej. W tym przykładzie wprowadź wartość 3001.

Wprowadź numer portu

Wybierz pozycję Uruchom skrypt: dev jako zadanie uruchamiania.

Wybieranie zadania uruchamiania debugera

Masz możliwość uruchamiania izolowanego lub nie izolowanego. W przypadku uruchomienia izolowanego żądania są kierowane tylko do procesu lokalnego; inni deweloperzy mogą używać klastra bez wpływu. Jeśli nie uruchomisz izolowanego, cały ruch zostanie przekierowany do procesu lokalnego. Aby uzyskać więcej informacji na temat tej opcji, zobacz Używanie funkcji routingu do opracowywania w izolacji. W tym przykładzie użyjemy niezwiązanych.

Wybierz izolację

Uwaga

Program VS Code wyświetla monit o zezwolenie programowi EndpointManager na uruchamianie podwyższonych uprawnień i modyfikowanie pliku hostów.

Profil debugowania bridge to Kubernetes został pomyślnie skonfigurowany.

Wybierz ikonę Debuguj po lewej stronie i wybierz pozycję Uruchom skrypt: dev with Kubernetes (Uruchom skrypt: dev with Kubernetes). Kliknij przycisk Start obok pozycji Uruchom skrypt: tworzenie za pomocą platformy Kubernetes.

Wybieranie profilu uruchamiania debugowania

Komputer deweloperów jest połączony, gdy pasek stanu programu VS Code zmieni kolor pomarańczowy, a rozszerzenie Kubernetes pokazuje, że masz połączenie. Po nawiązaniu połączenia z komputerem dewelopera ruch rozpoczyna przekierowywanie do komputera dewelopera dla zastępowania interfejsu STATS-API.

Debugowanie za pomocą rozwiązania Bridge to Kubernetes

Przejdź do punktu wejścia frontonu aplikacji do wykonania. W przypadku minikube użyjemy polecenia 127.0.0.1. Aby uzyskać dostęp do lokalnego adresu URL punktu końcowego dla aplikacji, otwórz menu Kubernetes na pasku stanu i wybierz wpis punktu końcowego.

Prześlij żądanie do interfejsu stats-api, wybierając link statystyki .

Uruchomiona witryna internetowa — wybierz link stanu

Zwróć uwagę, że ruch, który początkowo uruchomiono w klastrze, został przekierowany do uruchomionej lokalnie wersji (poza klastrem), w której został wyzwolony punkt przerwania.

Naciśnij przycisk odtwarzania i pozwól, aby żądanie zostało ukończone w sposób niewidoczny.

W tym przykładzie pokazano tylko jedną z ilustracji, jak używać rozwiązania Bridge to Kubernetes w klastrach innych niż AKS. Wypróbuj go we własnym projekcie!

Czyszczenie

Aby wyczyścić zasoby utworzone przez ten przykład, uruchom polecenie:

kubectl delete namespace todo-app

Następne kroki

Aplikację można również wdrożyć w usłudze Azure Kubernetes Service (AKS) za pomocą rozwiązania Bridge to Kubernetes. Zobacz Używanie mostka do platformy Kubernetes z usługą AKS