1. Цели
В этой лабораторной работе вы:
- Изучите плагины Cloud Code.
- Развертывание в кластере Kubernetes
- Потоковая передача логов Kubernetes
- Используйте горячую перезагрузку изменений.
- Отладка работающих приложений Kubernetes
2. Подготовка рабочего места
Клонируйте приложение
Чтобы клонировать репозиторий и открыть его в среде разработки:
- Откройте редактор Cloud Shell, перейдя по следующей ссылке.
https://ide.cloud.google.com
- В окне терминала клонируйте исходный код приложения с помощью следующей команды:
git clone https://github.com/viglesiasce/sample-app.git -b golden-path
- Перейдите в указанную директорию и установите рабочую область IDE в корневую папку репозитория.
cd sample-app && cloudshell workspace .
Запуск Minikube
В этом разделе вы создадите, протестируете, развернете и получите доступ к своему приложению, используя локальную версию Kubernetes под названием Minikube.
- В терминале запустите minikube, выполнив команду:
minikube start
Minikube настраивает локальный кластер Kubernetes в вашей оболочке Cloud Shell. Эта настройка займет несколько минут. Пока идет процесс запуска, уделите немного времени ознакомлению с различными интерфейсами, предоставляемыми Cloud Code на следующем шаге.
3. Изучение плагина Cloud Code
Cloud Code предоставляет IDE-поддержку для полного цикла разработки приложений Kubernetes и Cloud Run, от создания приложения на основе существующего шаблона до мониторинга ресурсов развернутого приложения. Вы будете использовать различные команды и представления, предоставляемые Cloud Code. На этом этапе вы познакомитесь с основными интерфейсами.
Просматривайте изображения, отображаемые в проводнике, с помощью панели действий.
С панели действий доступны различные панели пользовательского интерфейса. Чтобы кратко ознакомиться с различными режимами просмотра, щелкните по значкам соответствующего режима.
API Explorer:
- Нажмите на значок Cloud Code - Cloud APIs на панели действий. Дополнительные сведения о работе в этом режиме доступны в документации .

Secret Manager Explorer:
- Щелкните на панели действий пункт «Менеджер секретов». Дополнительные сведения о работе в этом режиме доступны в документации.

Облачный исследователь запуска:
- Перейдите в Cloud Run Explorer, используя значок Cloud Run на панели действий слева. Дополнительные сведения о работе в этом режиме доступны в документации.

Kubernetes Explorer:
- Перейдите в Kubernetes Explorer, используя значок на панели действий слева. Дополнительные сведения о работе в этом представлении доступны в документации.

Просмотрите команды строки состояния.
К часто используемым командам можно быстро получить доступ с помощью индикатора в строке состояния.
- Найдите индикатор расширения Cloud Code в строке состояния.
и нажмите на него. - Ознакомьтесь с различными командами, доступными для запуска и отладки в CloudRun и Kubernetes.
- Нажмите «Открыть приветственную страницу» для получения дополнительной информации и примеров заданий.
Обзор палитры команд Команды
Дополнительные команды доступны на панели команд. Ознакомьтесь со списком доступных команд.
- Откройте палитру команд (нажмите Ctrl/Cmd+Shift+P) и введите Cloud Code, чтобы отфильтровать доступные команды.
- Используйте клавиши со стрелками для переключения между командами в списке.
4. Развертывание в кластере Kubernetes
В этом разделе вы создаете, тестируете, развертываете и получаете доступ к своему приложению.
Описанные ниже шаги запускают сборку исходного кода, а затем выполняют тесты. Сборка и тестирование займут несколько минут. Эти тесты включают модульные тесты и этап проверки, который проверяет правила, установленные для среды развертывания. Этот этап проверки уже настроен и гарантирует получение предупреждений о проблемах развертывания, даже если вы продолжаете работать в среде разработки.
- В нижней части окна редактора Cloud Shell выберите Cloud Code.
. - В появившейся вверху панели выберите «Запустить в Kubernetes». Если появится запрос, выберите «Да», чтобы использовать контекст Kubernetes minikube.
- Выберите вкладку «Вывод» в нижней панели.
для просмотра хода выполнения и уведомлений - В выпадающем меню канала справа выберите "Kubernetes: Запуск/Отладка - Подробности".
для просмотра дополнительных сведений и журналов, транслируемых в режиме реального времени из контейнеров
После завершения сборки и тестирования на вкладке «Вывод» отображается сообщение: Resource deployment/sample-app-dev status completed successfully , и указываются два URL-адреса.
- В терминале Cloud Code наведите курсор на первый URL-адрес в выводе (http://localhost:8080), а затем во всплывающей подсказке выберите «Открыть предварительный просмотр веб-страницы».
Локальная версия приложения открывается в вашем браузере. Эта версия приложения работает в кластере Kubernetes minikube.
- В браузере обновите страницу. Число рядом со счетчиком увеличится, показывая, что приложение реагирует на обновление.
Оставьте эту страницу открытой в браузере, чтобы вы могли просматривать приложение по мере внесения изменений в локальную среду.
5. Используйте горячую перезагрузку изменений.
В этом разделе вы вносите изменения в приложение и просматриваете их, пока приложение работает в локальном кластере Kubernetes. На вкладке «Вывод» для канала Kubernetes: Run/Debug, помимо URL-адресов приложения, отображается также сообщение Watching for changes. Это означает, что режим отслеживания включен. Пока Cloud Code находится в режиме отслеживания, Cloud Code будет обнаруживать любые сохраненные изменения в вашем репозитории и автоматически пересобирать и повторно развертывать приложение с последними изменениями.
- В редакторе Cloud Shell перейдите к файлу main.go.
- В файле main.go, в строке 23, измените цвет с зеленого на синий.
- Сохраните файл.
Cloud Code обнаруживает, что изменения в приложении сохранены, и автоматически выполняет повторное развертывание. На вкладке «Вывод» отображается сообщение «Обновление инициировано». Выполнение этого процесса повторного развертывания займет несколько минут.
Эта автоматическая пересборка аналогична горячей перезагрузке кода, которая доступна для некоторых типов приложений и фреймворков.
- После завершения сборки перейдите в браузер, где открыто приложение, и обновите страницу.
При обновлении страницы цвет верхней части таблицы меняется с синего на зеленый.
Эта настройка обеспечивает автоматическую перезагрузку для любой архитектуры и любых компонентов. При использовании Cloud Code и minikube любой компонент, работающий в Kubernetes, имеет функцию горячей перезагрузки кода.
6. Отладка работающих приложений Kubernetes
Вы запустили приложение, внесли изменения и просмотрели его работу. В этом разделе вы отлаживаете приложение, чтобы убедиться, что оно готово к фиксации изменений в основном репозитории.
В этом примере отладки мы сосредоточимся на участке кода, отвечающем за счетчик страниц.
- В редакторе Cloud Shell откройте файл main.go.
- Установите точку останова в приложении, щелкнув слева от номера строки 82 (если err != nil {)
- В синей панели внизу редактора Cloud Shell выберите Cloud Code.
. - В появившейся вверху панели выберите «Отладка в Kubernetes».
Cloud Code запускает и подключает отладчики, позволяя вам получить доступ к состоянию приложения в оперативной памяти, а не только к поведению приложения, отображаемому пользователем.
- В конце процесса развертывания в верхней части окна появится запрос на подтверждение каталога в контейнере, куда развернуто приложение.

Убедитесь, что значение установлено на /go/src/app, и нажмите Enter, чтобы подтвердить значение.
- Дождитесь завершения развертывания отладчика. Вы поймете, что процесс завершен, когда строка состояния станет оранжевой, а в выводе появится сообщение
"Attached debugger to container "sample-app-dev-..." successfully». - В терминале Cloud Code наведите курсор на первый URL-адрес в выводе (http://localhost:8081), а затем во всплывающей подсказке выберите «Открыть предварительный просмотр веб-страницы». Страница не загрузится до конца, что и ожидается.
- Вернитесь в IDE, где теперь отображается отладчик. Вкладка «Код» откроется, и вы увидите стек вызовов, а также переменные, доступные в этой части кода. Вы можете развернуть «Переменные — Локальные», чтобы увидеть текущее значение переменной-счетчика.
- Чтобы страница продолжила загрузку, выберите значок «Продолжить» в окне отладки.

- После завершения отладки нажмите кнопку «Стоп», чтобы завершить работу всех запущенных потоков.
