1. Cele
W tym module:
- Poznaj wtyczki Cloud Code
- Wdróż w klastrze Kubernetes
- Strumieniowanie logów Kubernetes
- Ponowne ładowanie zmian z użyciem „ gorąco”
- Debuguj aktywne aplikacje Kubernetes
2. Przygotowuję obszar roboczy
Klonowanie aplikacji
Aby skopiować repozytorium i otworzyć je w środowisku programistycznym:
- Otwórz edytor Cloud Shell, odwiedzając ten URL
https://ide.cloud.google.com
- W oknie terminala skopiuj źródło aplikacji za pomocą tego polecenia:
git clone https://github.com/viglesiasce/sample-app.git -b golden-path
- Przejdź do katalogu i ustaw obszar roboczy IDE na katalog główny repozytorium
cd sample-app && cloudshell workspace .
Uruchom Minikube
W tej sekcji nauczysz się kompilować, testować i wdrażać aplikacje oraz uzyskiwać do nich dostęp za pomocą lokalnej wersji Kubernetes o nazwie Minikube.
- Uruchom minikube w terminalu, uruchamiając polecenie:
minikube start
Minikube skonfiguruje lokalny klaster Kubernetes w Twoim Cloud Shell. Ta konfiguracja zajmie kilka minut. Podczas uruchamiania poświęć chwilę na zapoznanie się z różnymi interfejsami dostępnymi w Cloud Code w następnym kroku.
3. Odkrywanie wtyczki Cloud Code
Cloud Code zapewnia obsługę IDE na potrzeby pełnego cyklu programowania aplikacji Kubernetes i Cloud Run – od tworzenia aplikacji na podstawie istniejącego szablonu po monitorowanie zasobów wdrożonej aplikacji. Będziesz używać różnych poleceń i widoków dostępnych w Cloud Code. W tym kroku zapoznasz się z podstawowymi interfejsami.
Sprawdź widoki odkrywcy na pasku aktywności
Z paska aktywności można wyświetlić wiele paneli interfejsu. Aby pokrótce zapoznać się z różnymi widokami, klikaj ikony poszczególnych widoków.
API Explorer:
- Na pasku aktywności kliknij ikonę Cloud Code – Cloud APIs. Dodatkowe informacje o pracy w tym widoku znajdziesz w dokumentacji.
Eksplorator usługi Secret Manager:
- Kliknij widok usługi Secret Manager ąż na pasku aktywności. Dodatkowe informacje o korzystaniu z tego widoku danych znajdziesz w dokumentacji
Eksplorator Cloud Run:
- Przejdź do eksploratora Cloud Run, korzystając z ikony Cloud Run na pasku aktywności po lewej stronie. Dodatkowe informacje o korzystaniu z tego widoku danych znajdziesz w dokumentacji
Eksplorator Kubernetes:
- Przejdź do Eksploratora Kubernetes, korzystając z ikony na pasku aktywności po lewej stronie. Dodatkowe informacje o korzystaniu z tego widoku danych znajdziesz w dokumentacji
Przejrzyj polecenia na pasku stanu
Wskaźnik na pasku stanu umożliwia szybki dostęp do często używanych poleceń.
- Znajdź wskaźnik rozszerzenia Cloud Code na pasku stanu  i kliknij go.
- Przejrzyj różne polecenia dostępne do uruchamiania i debugowania w CloudRun i Kubernetes
- Kliknij Otwórz stronę powitalną, aby uzyskać dodatkowe informacje i przykładowe działania
Przejrzyj paletę poleceń Polecenia
Dodatkowe polecenia są dostępne z palety poleceń. Przejrzyj listę poleceń, do których masz dostęp.
- Otwórz paletę poleceń (naciśnij klawisze Ctrl/Cmd+Shift+P), a następnie wpisz Cloud Code, aby przefiltrować dostępne polecenia.
- Do poruszania się między listą poleceń służą klawisze strzałek.
4. Wdrażanie w klastrze Kubernetes
W tej sekcji dowiesz się, jak kompilować, testować i wdrażać aplikacje, a także uzyskiwać do nich dostęp.
Poniższe kroki pozwalają rozpocząć kompilację kodu źródłowego, a następnie przeprowadzić testy. Kompilacja i testy potrwają kilka minut. Te testy obejmują testy jednostkowe oraz etap weryfikacji, który sprawdza reguły ustawione dla środowiska wdrożenia. Ten etap weryfikacji jest już skonfigurowany i dzięki temu ostrzeżemy Cię o problemach z wdrożeniem, nawet jeśli nadal pracujesz w środowisku programistycznym.
- W panelu u dołu edytora Cloud Shell wybierz Cloud Code łatwiejsze .
- W panelu, który pojawi się u góry, wybierz Uruchom w Kubernetes. Jeśli pojawi się taka prośba, wybierz Tak, aby użyć kontekstu minikube Kubernetes.
- Wybierz kartę Wyniki w dolnym panelu , aby zobaczyć postęp i powiadomienia.
- Wybierz „Kubernetes: Run/Debug - detail”. z menu kanału po prawej stronie, aby wyświetlić dodatkowe szczegóły i logi, które są przesyłane na żywo z kontenerów.
Po zakończeniu kompilacji i testów na karcie Wyniki (Wyniki) pojawi się komunikat Resource deployment/sample-app-dev status completed successfully
. Na liście będą też widoczne 2 adresy URL.
- W terminalu Cloud Code najedź kursorem na pierwszy adres URL w danych wyjściowych (http://localhost:8080), a następnie w wyświetlonej wskazówce narzędzia wybierz Otwórz podgląd w przeglądarce.
W przeglądarce zostanie otwarta lokalna wersja aplikacji. Ta wersja aplikacji działa w klastrze Kubernetes minikube.
- Odśwież stronę w przeglądarce. Liczba obok opcji Licznik wzrasta, co oznacza, że aplikacja odpowiada na odświeżenie.
Nie zamykaj tej strony w przeglądarce, aby móc wyświetlać aplikację podczas wprowadzania zmian w środowisku lokalnym.
5. Ponowne ładowanie zmian z użyciem „ gorąco”
W tej sekcji wprowadzisz zmianę w aplikacji i wyświetlisz tę zmianę w miarę jej działania w lokalnym klastrze Kubernetes. Na karcie danych wyjściowych kanału Kubernetes: Run/Debug, oprócz adresów URL aplikacji, wyświetlany jest również komunikat Watching for changes.
. Oznacza to, że włączony jest tryb obserwacji. Gdy Cloud Code jest w trybie obserwacji, Cloud Code wykrywa wszystkie zapisane zmiany w repozytorium oraz automatycznie skompiluje i ponownie wdroży aplikację z uwzględnieniem najnowszych zmian.
- W edytorze Cloud Shell przejdź do pliku main.go.
- W tym pliku main.go w wierszu 23 zmień kolor z zielonego na niebieski.
- Zapisz plik.
Cloud Code wykrywa, że zmiana w aplikacji została zapisana, i automatycznie wdraża ją ponownie. Na karcie Output (Wyjście) wyświetla się komunikat zainicjowano aktualizację. Ponowne wdrożenie może potrwać kilka minut.
Ta funkcja automatycznego ponownego kompilacji jest podobna do ponownego wczytywania kodu z użyciem gorącego kodu – ta funkcja jest dostępna w przypadku niektórych typów aplikacji i platform.
- Po zakończeniu kompilacji otwórz przeglądarkę, w której masz otwartą aplikację, i odśwież stronę.
Po odświeżeniu tabeli kolor u góry zmieni się z niebieskiego na zielony.
Ta konfiguracja zapewnia automatyczne ponowne ładowanie w przypadku dowolnej architektury i komponentów. W przypadku Cloud Code i minikube wszystkie usługi działające w Kubernetes mają tę funkcję ponownego ładowania kodu.
6. Debugowanie aktywnych aplikacji Kubernetes
Udało Ci się uruchomić aplikację, wprowadzić zmianę i wyświetlić uruchomioną aplikację. W tej sekcji przeprowadzisz debugowanie aplikacji, aby mieć pewność, że jest ona gotowa do ponownego zatwierdzenia w głównym repozytorium.
W tym przykładzie debugowania skoncentrujemy się na sekcji kodu licznika stron.
- W edytorze Cloud Shell otwórz plik main.go
- Ustaw punkt przerwania w aplikacji, klikając lewy numer wiersza 82 (if err != nil {)
- W niebieskim panelu u dołu edytora Cloud Shell wybierz Cloud Code .
- W panelu, który pojawi się u góry, kliknij Debuguj w Kubernetes.
Cloud Code uruchamia i dołącza debugery, dzięki czemu można uzyskać dostęp do stanu w pamięci aplikacji, a nie tylko do jej działania widocznego dla użytkowników.
- Po zakończeniu procesu wdrażania u góry okna pojawi się prośba o potwierdzenie katalogu w kontenerze, w którym aplikacja została wdrożona.
Sprawdź, czy wartość jest ustawiona na /go/src/app, i naciśnij Enter, aby ją zaakceptować.
- Poczekaj, aż debuger zakończy wdrażanie. Po zakończeniu tego procesu pasek stanu zmieni kolor na pomarańczowy, a na wyniku pojawi się komunikat
"Attached debugger to container "sample-app-dev-..." successfully
. - W terminalu Cloud Code najedź kursorem na pierwszy adres URL w danych wyjściowych (http://localhost:8081), a następnie w wyświetlonej wskazówce narzędzia wybierz Otwórz podgląd w przeglądarce. Strona nie dokończy się, co jest oczekiwanym rezultatem.
- Wróć do IDE, w którym znajduje się debuger. Na karcie pojawi się kod, a w nim wyświetli się stos wywołań oraz zmienne dostępne w danej części kodu. Aby zobaczyć bieżącą wartość zmiennej licznika, możesz rozwinąć sekcję Zmienne – Lokalne.
- Aby umożliwić dalsze wczytywanie strony, kliknij przycisk „Dalej”. ikona w oknie debugowania
- Po zakończeniu debugowania kliknij przycisk Zatrzymaj, aby zakończyć każdy z uruchomionych wątków.