Udostępnij za pośrednictwem


Używanie rozwiązania Bridge do platformy Kubernetes z usługą AKS

Uwaga

Firma Microsoft planuje już nie obsługiwać projektu Bridge to Kubernetes. W ciągu najbliższych kilku miesięcy przeniesiemy projekt do stanu archiwalnego. W międzyczasie projekt jest nadal dostępny do użycia i pobrania. W tym okresie mamy nadzieję zapoznać się z projektami społeczności, które zapewniają podobne korzyści, jak bridge to Kubernetes w przyszłości. Jeśli masz pytania, skontaktuj się z nami na tablicy problemów w witrynie GitHub.

W tym samouczku użyjesz określonej przykładowej aplikacji internetowej mikrousług usługi AKS, aby dowiedzieć się, jak używać mostka do platformy Kubernetes do debugowania lokalnie w jednym zasobniku, który jest częścią klastra usługi Azure Kubernetes Service (AKS).

Zanim rozpoczniesz

W tym przewodniku użyto przykładowej aplikacji Todo App w celu zademonstrowania połączenia komputera deweloperskiego z klastrem Kubernetes działającym w usłudze AKS. Jeśli masz już własną aplikację uruchomioną w klastrze Kubernetes, zobacz Programowanie za pomocą platformy Kubernetes. Jeśli używasz innego klastra, takiego jak MiniKube uruchomionego lokalnie, zobacz Używanie mostu do platformy Kubernetes z przykładem.

Wymagania wstępne

Tworzenie klastra Kubernetes

Utwórz klaster usługi AKS w obsługiwanym regionie. Następujące polecenia tworzą grupę zasobów o nazwie MyResourceGroup i klaster usługi AKS o nazwie MyAKS.

az group create \
    --name MyResourceGroup \
        --location eastus
az aks create \
    --resource-group MyResourceGroup \
    --name MyAKS \
    --location eastus \
    --node-count 3 \
    --generate-ssh-keys

Instalowanie przykładowej aplikacji

Pobieranie kodu i instalowanie zależności

git clone https://github.com/hsubramanianaks/b2k-samples
cd b2k-samples/todo-app
npm install stats-api\

Nawiązywanie połączenia z klastrem i wdrażanie aplikacji

Na komputerze dewelopera pobierz i skonfiguruj interfejs wiersza polecenia platformy Kubernetes w celu nawiązania połączenia z klastrem Kubernetes przy użyciu polecenia az aks get-credentials.

az aks get-credentials --resource-group MyResourceGroup --name MyAKS
kubectl create namespace todo-app
kubectl config set-context --current --namespace=todo-app
kubectl apply -f deployment.yaml --namespace todo-app

Wypróbuj aplikację

W tym samym terminalu, którego używaliśmy wcześniej, uruchom następujące polecenie i skopiuj adres IP dla usługi frontonu w kolumnie Zewnętrzny adres IP.

kubectl get services

Aby wypróbować aplikację, otwórz adres URL: {your external IP from above command goes here}.nip.io

Debugowanie usługi stats-api

W tym samym terminalu, którego używaliśmy wcześniej, wpisz następujące polecenie, aby otworzyć interfejs stats-api w programie VS Code.

code ./stats-api

Najpierw umieść punkt przerwania w wierszu 17 z server.js.

Następnie upewnij się, że todo-app przestrzeń nazw w klastrze MyAKS jest ustawiona jako domyślna (jeśli ma wartość * obok niej). Jeśli wartość domyślna nie jest ustawiona, kliknij prawym przyciskiem myszy węzeł todo-app i wybierz polecenie Użyj przestrzeni nazw.

Zrzut ekranu przedstawiający przestrzeń nazw Bridge to Kubernetes.

Następnie skonfiguruj mostek: 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 ).

Zrzut ekranu przedstawiający okno polecenia Bridge to Kubernetes Configure ( Konfigurowanie mostka do platformy Kubernetes).

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 .

Zrzut ekranu przedstawiający wybieranie usługi do nawiązania połączenia z oknem.

Ważne

Można przekierowywać tylko usługi, które mają jeden zasobnik.

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

Zrzut ekranu przedstawiający okno wprowadź numer portu.

Wybierz pozycję Uruchom skrypt: dev jako zadanie uruchamiania.

Zrzut ekranu przedstawiający okno 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 kontynuujemy działania nieizolowane. Jeśli wybrano izolację, task.json ma prefiks, którego należy użyć do kierowania żądania do maszyny.

Zrzut ekranu przedstawiający okno opcji wyboru izolacji.

Uwaga

Podczas kolejnych uruchomień wystarczy kliknąć ikonę debugowania bez konieczności przechodzenia przez tę konfigurację i monitowania o podanie nazwy usługi, portu, zadania uruchamiania lub uruchomienia izolowanego. Te wartości są zapisywane w pliku .vscode/tasks.json. Aby zmienić te ustawienia później, otwórz paletę poleceń (CTRL+SHIFT+P lub Cmd+Shift+P na komputerze Mac) i uruchom polecenie Bridge to Kubernetes: Configure.

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

Aby rozpocząć debugowanie, wybierz ikonę Debuguj po lewej stronie i wybierz pozycję Run Script: dev with Kubernetes (Uruchom skrypt: dev with Kubernetes). Kliknij przycisk Start obok pozycji Uruchom skrypt: tworzenie za pomocą platformy Kubernetes.

Zrzut ekranu przedstawiający okno wybierania profilu uruchamiania debugowania.

Uwaga

Zostanie wyświetlony monit o zezwolenie programowi EndpointManager na uruchomienie podwyższonego poziomu uprawnień i zmodyfikowanie pliku hostów.

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.

Zrzut ekranu przedstawiający okno wybierania debugowania za pomocą rozwiązania Bridge to Kubernetes.

Przejdź do punktu wejścia frontonu aplikacji za pośrednictwem zewnętrznego adresu IP, który został znaleziony wcześniej. {your external IP from get services command}.nip.io Należy pamiętać, że w przypadku wybrania trybu izolacji należy użyć polecenia {your prefix - can be found in task.json}.{your external IP from get services command}.nip.io.

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

Zrzut ekranu przedstawiający wybieranie uruchomionej witryny internetowej — 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.

Czyszczenie

Po zatrzymaniu debugera wszystkie zmiany w klastrze zostaną przywrócone. Należy pamiętać, że jeśli używasz izolacji, zasobnik menedżera routingu pozostanie tam, aby przyspieszyć rozpoczęcie debugera przy następnym uruchomieniu.

Możesz pozostawić klaster usługi AKS na potrzeby przyszłego debugowania lub usunąć go za pomocą następującego polecenia.

az aks delete --name MyAKS --resource-group MyResourceGroup

Następne kroki

Dowiedz się więcej o rozwiązaniu Bridge to Kubernetes na stronie How Bridge to Kubernetes works (Jak działa most na platformie Kubernetes).