Статьи

Unikernel на Google Compute Engine. Часть 1. Запуск сервера OSv Unikernel Tomcat.

Это краткое руководство по запуску  unikernel  в Google Compute Engine. Это также хороший  пример того, почему вы должны заботиться об unikernels. Я использовал  unikernel  OSv, потому что он поддерживает Java, и я выбрал Java. Более того, инструмент для создания образов OSv,  Capstan , похож на Docker, поэтому я почувствовал, что могу быстро начать работу.

Вы , возможно, видели  Запуск ОСВ на руководство Google Compute Engine , но инструкции кажутся устаревшими (см  вопрос ). У инструмента Capstan в настоящее время есть проблемы при создании изображений для Google Compute Engine (см.  Проблему ). Поэтому опыт оказался не таким простым, как я надеялся, но я был полон решимости заставить его работать.

Запуск образа OSv Tomcat в Google Compute Engine

В следующих инструкциях используется   инструмент командной строки Google Cloud SDK . Вы можете сделать то же самое непосредственно в   интерфейсе консоли разработчика (подробности см. В приложении в самом конце). Чтобы уменьшить количество аргументов командной строки, начните с установки проекта по умолчанию и зоны по умолчанию (вы можете выбрать и выбрать  зону,  которая вам подходит).

$ gcloud config set core/project YOUR_PROJECT_ID
$ gcloud config set compute/zone us-central1-c

Сначала зарегистрируйте общедоступный образ OSv Tomcat в своем проекте Google Cloud Platform:

$ gcloud compute images create osv-v0–23-tomcat \
    --source-uri gs://osv/v0.23/osv-tomcat.gce.tar.gz

Затем создайте экземпляр виртуальной машины, используя этот образ:

$ gcloud compute instances create osv-tomcat --image osv-v0–23-tomcat

Это было довольно быстро, верно? Обратите внимание на внешний IP-адрес вновь созданного экземпляра. Это важно!

Помните, этот unikernel запускает только Tomcat и ничего больше. Следовательно, вы не сможете использовать SSH. Чтобы увидеть, что происходит внутри экземпляра, вам нужно посмотреть на вывод последовательного порта:

$ gcloud compute instances get-serial-port-output osv-tomcat
Пример последовательного порта вывода

Все работает! Из вывода последовательного порта видно, что экземпляр Tomcat прослушивает порт 8081. По умолчанию облачная платформа Google блокирует входящий трафик через этот порт. Вы можете включить порт, обновив конфигурацию правил брандмауэра:

$ gcloud compute firewall-rules create allow-8081 — allow tcp:8081

Наконец, обратитесь к внешнему IP- адресу созданного вами экземпляра и в браузере перейдите по  адресу http: // EXTERNAL_IP: 8081 / . Вы должны увидеть страницу Tomcat по умолчанию!

Домашняя страница Tomcat по умолчанию, которую вы должны увидеть

Что дальше?

В следующей части этой серии я буду использовать Capstan для создания собственного образа уникального ядра OSv и развертывания его в Google Compute Engine (с обходными путями).

Приложение — делай все в браузере

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

Сначала перейдите к  Compute Engine  >  Изображения и нажмите  New Image,  чтобы зарегистрировать изображение:


Затем перейдите к  Compute Engine  >  Экземпляры виртуальной машины и нажмите  Создать экземпляр  (или  Новый экземпляр ), чтобы создать новый экземпляр виртуальной машины с образом. Обязательно нажмите  Загрузочный диск  >  Изменить,  чтобы указать образ загрузочного диска OSv:


После создания экземпляра вы также можете получить доступ к выходу последовательного порта непосредственно из консоли разработчика. Щелкните имя виртуальной машины osv-tomcat, затем прокрутите до конца и нажмите  Вывод последовательной консоли :


Чтобы включить порт 8081, выберите «  Сеть»  > «   Сеть по умолчанию » и нажмите «  Добавить правило брандмауэра» :


Вот и все!

( Оригинальный пост на Medium)