Udostępnij za pośrednictwem


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

Notatka

Bridge to Kubernetes zostanie wycofany 30 kwietnia 2025 r. Aby uzyskać szczegółowe informacje o wycofaniu i alternatywach typu open source, zobacz w zgłoszeniu w projekcie GitHub.

W tym samouczku korzystasz z konkretnej aplikacji webowej mikrousług dla AKS, aby nauczyć się używać Bridge to Kubernetes do lokalnego debugowania w ramach pojedynczego zasobnika będącego częścią klastra Azure Kubernetes Service (AKS).

Przed rozpoczęciem

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 Develop with Kubernetes. Jeśli używasz innego klastra, takiego jak MiniKube uruchomionego lokalnie, zobacz Użyj mostu do platformy Kubernetes z przykładem.

Warunki 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 deweloperskim pobierz i skonfiguruj CLI Kubernetes, aby połączyć się z klastrem Kubernetes przy użyciu 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ę

Na tym samym terminalu, którego używałeś wcześniej, uruchom następujące polecenie i skopiuj adres IP dla usługi interfejsu frontowego 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 server.js.

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

Zrzut ekranu przedstawiający przestrzeń nazw Most do 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.

Zostanie wyświetlony monit o skonfigurowanie usługi, którą chcesz zamienić, port, który chcesz przekazać z komputera programistycznego, oraz zadanie uruchamiania, którego chcesz użyć.

Wybierz usługę stats-api.

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

Ważny

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

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 do wprowadzenia numeru portu.

Wybierz pozycję Uruchom skrypt: dev jako zadanie uruchamiania.

Zrzut ekranu przedstawiający okno wyboru zadania uruchamiania debugera.

Możesz uruchamiać w trybie izolowanym lub nieizolowanym. W przypadku uruchomienia izolowanego żądania są kierowane tylko do procesu lokalnego; inni deweloperzy mogą używać klastra bez wpływu. Jeśli nie uruchomisz w trybie izolacji, cały ruch zostanie przekierowany do lokalnego procesu. Aby uzyskać więcej informacji na temat tej opcji, zobacz Używanie możliwości routingu do tworzenia w izolacji. W tym przykładzie kontynuujemy z opcją nieizolowaną. 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.

Notatka

Podczas kolejnych uruchomień wystarczy kliknąć ikonę debugowania, bez konieczności przechodzenia przez tę konfigurację oraz podawania nazwy usługi, portu, zadania startowego lub uruchamiania izolowanego. Te wartości są zapisywane w .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 do platformy Kubernetes: Skonfiguruj.

Profil debugowania "Bridge to Kubernetes" został pomyślnie skonfigurowany.

Aby rozpocząć debugowanie, wybierz ikonę Debuguj po lewej stronie i wybierz pozycję Uruchom skrypt: dev with Kubernetes. Kliknij przycisk Start obok Uruchom skrypt: dev with Kubernetes.

Zrzut ekranu przedstawiający okno wyboru profilu uruchamiania debugowania.

Notatka

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

Twój komputer deweloperski jest połączony, gdy pasek stanu w VS Code zmienia kolor na pomarańczowy, a rozszerzenie Kubernetes wskazuje, że jesteś połączony. Po nawiązaniu połączenia z komputerem deweloperskim, ruch zaczyna być przekierowywany do komputera deweloperskiego w celu zastąpienia 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 znalezionego wcześniej zewnętrznego adresu IP {your external IP from get services command}.nip.io. Należy pamiętać, że w przypadku wybrania trybu izolacji należy użyć {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 pokazujący, jak wybrać działającą witrynę internetową – wybierz link statusu.

Zwróć uwagę, że ruch, który początkowo rozpoczął się w twoim klastrze, został przekierowany do wersji uruchomionej lokalnie (poza klastrem), gdzie został aktywowany punkt przerwania.

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

Czyszczenie

Po zatrzymaniu debugera wszystkie zmiany w klastrze zostaną przywrócone. Należy pamiętać, że jeśli byłeś w trakcie używania izolacji, zasobnik menedżera routingu pozostanie tam, aby przyspieszyć uruchomienie debugera przy następnym jego włączeniu.

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 w How Bridge to Kubernetes works.