Разработка с помощью Cloud Code

1. Цели

В этой лаборатории вы:

  • Изучите плагины Cloud Code
  • Развертывание в кластере Kubernetes
  • Поток журналов Kubernetes
  • Используйте горячую перезагрузку изменений.
  • Отладка живых приложений Kubernetes

2. Подготовка рабочего места

Клонировать приложение

Чтобы клонировать репозиторий и открыть его в своей среде разработки:

  1. Откройте редактор Cloud Shell, перейдя по следующему URL-адресу.

https://ide.cloud.google.com

  1. В окне терминала клонируйте исходный код приложения с помощью следующей команды:

git clone https://github.com/viglesiasce/sample-app.git -b golden-path

  1. Перейдите в каталог и установите рабочую область IDE в корень репо.

cd sample-app && cloudshell workspace .

Запустить Миникуб

В этом разделе вы создадите, протестируете, развернете свое приложение и получите к нему доступ, используя локальную версию Kubernetes под названием Minikube.

  1. В терминале запустите minikube, выполнив:

minikube start

Minikube настраивает локальный кластер Kubernetes в вашем Cloud Shell. Эта настройка займет несколько минут. Пока он запускается, на следующем этапе просмотрите различные интерфейсы, предоставляемые Cloud Code.

3. Изучение плагина Cloud Code

Cloud Code обеспечивает поддержку IDE для полного цикла разработки приложений Kubernetes и Cloud Run: от создания приложения на основе существующего шаблона до мониторинга ресурсов развернутого приложения. Вы будете использовать различные команды и представления, предоставляемые Cloud Code. На этом этапе вы познакомитесь с основными интерфейсами.

Просмотрите представления проводника на панели действий.

Несколько панелей пользовательского интерфейса доступны из панели действий. Для краткого ознакомления с различными видами нажмите на значки каждого вида.

API-проводник:

  • Нажмите значок Cloud Code — Cloud APIs Cloud Code  на панели действий. Дополнительные подробности по работе в этом представлении доступны в документации .

ded1723c524edd72.png

Секретный менеджер-исследователь:

  • Нажмите на представление «Менеджер секретов»  на панели действий. Дополнительные сведения о работе в этом представлении можно найти в документации.

89f88159bcf79fa9.png

Облачный обозреватель:

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

a1d583fd06413011.png

Кубернетес-эксплорер:

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

b2b8ab3975c5b0c9.png

Просмотр команд строки состояния

Часто используемые команды можно быстро получить с помощью индикатора в строке состояния.

  • Найдите индикатор расширения Cloud Code в строке состояния. d61e85cf23a32a40.png  и нажмите на него.
  • Ознакомьтесь с различными командами, доступными для запуска и отладки в CloudRun и Kubernetes.
  • Нажмите «Открыть приветственную страницу», чтобы получить дополнительную информацию и примеры действий.

Обзор палитры команд Команды

Дополнительные команды доступны из палитры команд. Просмотрите список команд, к которым у вас есть доступ.

  • Откройте палитру команд (нажмите Ctrl/Cmd+Shift+P), а затем введите Cloud Code, чтобы отфильтровать доступные команды.
  • Используйте клавиши со стрелками для перемещения по списку команд.

4. Развертывание в кластере Kubernetes.

В этом разделе вы создадите, протестируете, развернете свое приложение и получите к нему доступ.

Следующие шаги запускают сборку исходного кода, а затем запускают тесты. Сборка и тесты займут несколько минут. Эти тесты включают модульные тесты и этап проверки, на котором проверяются правила, установленные для среды развертывания. Этот этап проверки уже настроен, и он гарантирует, что вы получите предупреждение о проблемах с развертыванием, даже если вы все еще работаете в своей среде разработки.

  1. На панели внизу редактора Cloud Shell выберите Cloud Code  d61e85cf23a32a40.png .
  2. На появившейся вверху панели выберите «Выполнить в Kubernetes». При появлении запроса выберите Да, чтобы использовать контекст minikube Kubernetes.
  3. Выберите вкладку «Вывод» на нижней панели. 4866761cb9c691e2.png для просмотра прогресса и уведомлений
  4. Выберите «Kubernetes: Run/Debug — Detailed» в раскрывающемся списке каналов справа. c5e31091d464dbcf.png для просмотра дополнительных сведений и журналов, транслируемых в реальном времени из контейнеров

Когда сборка и тестирование завершены, на вкладке «Вывод» отображается надпись Resource deployment/sample-app-dev status completed successfully и отображаются два URL-адреса.

  1. В терминале Cloud Code наведите указатель мыши на первый URL-адрес в выходных данных (http://localhost:8080), а затем в появившейся подсказке выберите «Открыть веб-просмотр».

Локальная версия приложения откроется в вашем браузере. Эта версия приложения работает в кластере Kubernetes minikube.

  1. В браузере обновите страницу. Число рядом со счетчиком увеличивается, показывая, что приложение реагирует на ваше обновление.

Держите эту страницу открытой в своем браузере, чтобы вы могли просматривать приложение при внесении любых изменений в локальной среде.

5. Используйте горячую перезагрузку изменений

В этом разделе вы вносите изменения в приложение и просматриваете изменения по мере запуска приложения в локальном кластере Kubernetes. На вкладке вывода для канала Kubernetes: Run/Debug помимо URL-адресов приложения также отображается сообщение Watching for changes. Это означает, что режим просмотра включен. Пока Cloud Code находится в режиме наблюдения, Cloud Code обнаружит любые сохраненные изменения в вашем репозитории и автоматически пересоберет и повторно развернет приложение с учетом последних изменений.

  1. В редакторе Cloud Shell перейдите к файлу main.go.
  2. В этом файле main.go в строке 23 измените цвет с зеленого на синий.
  3. Сохраните файл.

Cloud Code обнаруживает, что изменение в приложении сохранено, и автоматически повторно развертывает его. На вкладке «Вывод» отображается сообщение «Обновление инициировано». Это перераспределение займет несколько минут.

Эта автоматическая перестройка аналогична горячей перезагрузке кода, которая доступна для некоторых типов приложений и платформ.

  1. Когда сборка будет завершена, перейдите в браузер, в котором открыто приложение, и обновите страницу.

При обновлении цвет верхней части таблицы меняется с синего на зеленый.

Эта настройка дает вам автоматическую перезагрузку для любой архитектуры и любых компонентов. При использовании Cloud Code и minikube все, что работает в Kubernetes, имеет функцию горячей перезагрузки кода.

6. Отладка живых приложений Kubernetes

Вы запустили приложение, внесли изменения и просмотрели работающее приложение. В этом разделе вы отлаживаете приложение, чтобы быть уверенным, что оно готово к возврату в основной репозиторий.

В этом примере отладки мы сосредоточимся на разделе кода счетчика страниц.

  1. В редакторе Cloud Shell откройте файл main.go.
  2. Установите точку останова в приложении, щелкнув слева номер строки 82 (если err != nil {)
  3. На синей панели в нижней части редактора Cloud Shell выберите Cloud Code. d61e85cf23a32a40.png .
  4. На появившейся вверху панели выберите «Отладка в Kubernetes».

Cloud Code запускает и подключает отладчики, чтобы вы могли получить доступ к состоянию приложения в памяти, а не только к поведению приложения, обращенному к пользователю.

  1. По окончании процесса развертывания в верхней части окна появится запрос на подтверждение каталога в контейнере, в котором развернуто приложение. f96e9a814edb44f4.png

Убедитесь, что для параметра установлено значение /go/src/app, и нажмите Enter, чтобы принять значение.

  1. Подождите, пока отладчик завершит развертывание. Вы узнаете, что все завершено, когда строка состояния станет оранжевой, а выходные данные сообщат "Attached debugger to container "sample-app-dev-..." successfully ».
  2. В терминале Cloud Code наведите указатель мыши на первый URL-адрес в выводе (http://localhost:8081), а затем в появившейся подсказке выберите «Открыть веб-просмотр». Страница не завершает загрузку, как ожидалось.
  3. Вернитесь в IDE, где теперь появится отладчик. На вкладке появится код, и вы увидите стек вызовов и переменные, доступные в этой части кода. Вы можете развернуть Переменные — Локальные, чтобы увидеть здесь текущее значение переменной счетчика.
  4. Чтобы страница продолжила загрузку, выберите значок «Продолжить» в окне отладки. 8f395391c4828528.png
  5. Когда вы закончите отладку, нажмите кнопку «Стоп», чтобы завершить каждый из запущенных потоков. 81d142a9e1a2c01b.png