OpenShift xPaaS version 3. «Hello, world»

Сначала определимся:


Redhat OpenShift Container Platform 3.3 (ранее OpenShift Enterprise) — коммерческая платформа для создания собственного космического корабля экземпляра the Next Generation Container OS, доки тут. Вообще для погружения в глубину глубин Linux Atomic Host и этот пост. Все на английском.


OpenShift Origin — Open Source проект, бесплатный вариант вышеуказанного продукта. Полная аналогия Fedora/RHEL.


Redhat OpenShift xPaaS содержит web консоли версии 2 и 3 (Next Gen). версия 3 и есть облачная вариация Redhat OpenShift Container Platfоrm 3.3. С 1 августа 2016 года регистрация новых пользователей под v2 прекращена. Разница преогромная. Я приводил пример развертывания приложения для v2. У v3 возможностей больше, да и просто это другой продукт. Дальше в посте простенький пример, чтобы почувствовать систему.


Подготовка


Что мы будем делать. Мы для начала создадим и опубликуем с помощью консольного клиента php-приложение. Состоящее из index.php с вызовом phpinfo (); Это будет наш условный «Hello, world». Почему совсем с простого? Чтобы дойти до сложного. Кто работает с Docker’ом, хорошо знает общие принципы построения окружения, то есть контейнер БД отдельный, общий для нескольких приложений, сами приложения могут быть в других контейнерах и связываться с БД с помощью внутренних механизмов. Тут декларирована возможность иметь разные приложения, скажем ruby и java, что во второй версии было невозможно. Картриджи v2 имели массу ограничений. Но зато освоить было довольно просто.


Завести учетную запись

Внимание! Обязательно нужна учетная запись на github.com. То есть здесь про нее спросят и предупредят о пробном доступе. Вообще, в разделе «Pricing» учебно-тренировочная халява как была так и осталась.


Создать локальное окружение (пример для CentOS 7.2)


После логина в web console справа вверху »?» меню help с него и начните. В подменю «Command Line Tools» ссылки на консольный клиент. Поставьте. Это ос — клиент Origin, а не rhc как у v2. Там же и первые шаги. Login, создание проекта.


$oc login https://api.preview.openshift.com --token=..... (на сайте найдете)

Создайте на github проект myapp или какой другой. Клонируйте его себе, добавьте:


$echo "">index.php

Далее добавьте все в репозиторий на гитхабе. Все готово создаем проект:


$oc new-project myapp

Вывод
Now using project "myapp" on server "https://api.preview.openshift.com:443".

You can add applications to this project with the 'new-app' command. For example, try:

oc new-app centos/ruby-22-centos7~https://github.com/openshift/ruby-ex.git

to build a new example application in Ruby.

Следуем совету:
```
$oc new-app php~http://github.com/myrepo/myapp.git
```
Вывод
--> Found image 276fc18 (4 weeks old) in image stream "php" in project "openshift" under tag "5.6" for "php"

Apache 2.4 with PHP 5.6
-----------------------
Platform for building and running PHP 5.6 applications

Tags: builder, php, php56, rh-php56

* A source build using source code from https://github.com/zirf0/v3.git will be created
  * The resulting image will be pushed to image stream "myapp:latest"
  * Use 'start-build' to trigger a new build
* This image will be deployed in deployment config "myapp"
* Port 8080/tcp will be load balanced by service "myapp"
  * Other containers can access this service through the hostname "myapp"

--> Creating resources with label app=myapp ...
imagestream "myapp" created
buildconfig "myapp" created
deploymentconfig "myapp" created
service "myapp" created
--> Success
Build scheduled, use `'oc logs -f bc/myapp'` to track its progress.
Run 'oc status' to view your app.

Тут наступает интересный момент. Нужно опубликовать приложение на web. В терминологии v3 создать route. В web консоли «Applications» → «Routes» → «Create Route». Из командной строки:


oc create route edge --service myapp
route myapp created

Посмотреть элементы проекта в web консоли. Но там глаза поначалу разбегаются. CLI удобнее унифицированностью:


oc get -o wide pods

Или services, routes и.т.д. То же с созданием и удалением.


oc get -o wide routes

Даст урл, в браузере — вывод phpinfo ();


Заключение и планы


Возможностей масса. Но для начала воспроизвести приложение+БД. Сделаю — отпишусь. Для задействования HAproxy, нескольких подов и прочего боюсь халявы не хватит, ограничения по ресурсам никто не отменял. А пока реального ничего не предвидится. Можно, конечно, развернуть триал или развернуть ориджин. Это просто, если Docker стоит, то
$oc cluster up.


Запустит контейнер origin: latest, при необходимости выкачав его образ. Набор «умелые руки». Origin можно скачать в виде виртуалки или собрать, он хостится на гитхабе.


Использование oc создаст локальную папку ~./kube со служебной информацией (в консоли она тоже есть). Неудивительно, LDK означает Linux, Docker, Kubernetes. Буду благодарен за уточнения исправления, комментарии и вопросы.

Комментарии (0)

© Habrahabr.ru