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 "<?phpinfo(); ?>">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 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.