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 стоит, то
    $sudo oc cluster up.


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


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


    UPD1 27.10.2016. Понятно, почему 30 дней это триал. Идет тестирование и через 30 дней экземпляр уничтожают, чтобы освободить ресурсы для других пользователей. Можно опять зарегистрироваться, но ресурсы предоставят, как только они освободятся. Можно поставить себе origin. Или создать свое облако на базу docker+kubernetes, c блэкджеком и женщинами.

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 0

    Only users with full accounts can post comments. Log in, please.