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
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji Azure, możesz utworzyć bezpłatne konto Azure.
- Zainstalowany interfejs wiersza polecenia platformy Azure.
- Program Visual Studio Code uruchomiony w systemach 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 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.
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 do przekazania z komputera programistycznego i zadanie uruchamiania do użycia.
Wybierz usługę stats-api
.
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.
Wybierz pozycję Uruchom skrypt: dev jako zadanie uruchamiania.
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.
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.
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.
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 .
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).