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
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, możesz utworzyć bezpłatne konto .
- Azure CLI zainstalowany.
- Visual Studio Code działa na macOS, Windows 10 lub Linux.
- Rozszerzenie Bridge to Kubernetes zainstalowane w programie Visual Studio Code.
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.
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).
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
.
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.
Wybierz pozycję Uruchom skrypt: dev jako zadanie uruchamiania.
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.
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.
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.
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 .
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.