Введение
Как же говорилось, Redhat OpenShift Container Platform 3.3 базируется на Redhat Openshift origin. Текущая версия — 1.3. Так как это OpenSource, можно поcтавить его себе. От основной темы несколько отходим. Но:
- Это интересно.
- Нет ограничений на число проектов (кроме как мощностью железа).
Эта статья именно про установку PaaS платформы у себя. Подразумевается умение работать с Docker и хорошее знакомство с RHEL7.1/CentOS7.1/Fedora21, еще можно использовать RHEL Atomic Host 7.2.6 и выше. Вообще в оригинальной документации предлагается два пути. Для разработчика и для администратора кластера. Администратору предлагается несколько вариантов, в том числе и установки полноценного кластера. Запаситесь железом и ресурсами. Да, еще конечно знание Ansible не помешает.
Но пока рассмотрим самый простенький вариант. Установка контейнера origin.
Итак, у вас одна из вышеперечисленных систем (в примере CentOS 7.2) Docker установлен и запущен. Клиент ос вы тоже установили (как это сделать — по ссылке). Минимальные требования к ресурсам выполнены (из документации к origin).
$ oc cluster up
...
Ensure that the Docker daemon is running with the following argument:
--insecure-registry "172.30.0.0/16"
И не запускается. Docker нужно сконфигурировать. Вот оригинальная документация. С некоторыми исправлениями:
$ sudo mkdir /etc/systemd/system/docker.service.d
$ sudo vi /etc/systemd/system/docker.service.d/docker.conf
Помещаем туда:
[Service]
ExecStart=
ExecStart=/usr/bin/docker-current daemon --exec-opt native.cgroupdriver=systemd --selinux-enabled --log-driver=journald --insecure-registry 172.30.0.0/16
Данные в файле переопределят параметры командной строки запуска docker'a из docker.service:
Фиксируем изменения и перезапускаем docker
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
Теперь
$ sudo oc cluster up
-- Checking OpenShift client ... OK
-- Checking Docker client ... OK
-- Checking Docker version ... OK
-- Checking for existing OpenShift container ... OK
-- Checking for openshift/origin:v1.3.0 image ... OK
-- Checking Docker daemon configuration ... OK
-- Checking for available ports ...
WARNING: Binding DNS on port 8053 instead of 53, which may be not be resolvable from all clients.
-- Checking type of volume mount ...
Using nsenter mounter for OpenShift volumes
-- Creating host directories ... OK
-- Finding server IP ...
Using 192.168.222.129 as the server IP
-- Starting OpenShift container ...
Creating initial OpenShift configuration
Starting OpenShift using container 'origin'
Waiting for API server to start listening
OpenShift server started
-- Installing registry ... OK
-- Installing router ... OK
-- Importing image streams ... OK
-- Importing templates ... OK
-- Login to server ... OK
-- Creating initial project "myproject" ... OK
-- Server Information ...
OpenShift server started.
The server is accessible via web console at:
https://192.168.222.129:8443
You are logged in as:
User: developer
Password: developer
To login as administrator:
oc login -u system:admin
Это интересно:
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b68e93c1eacd openshift/origin-docker-registry:v1.3.0 "/bin/sh -c 'DOCKER_R" 50 minutes ago Up 50 minutes k8s_registry.a76d04a6_docker-registry-1-bad99_default_ca436583-9372-11e6-beb5-000c294bdab8_2d4bceba
8fa5d4437791 openshift/origin-haproxy-router:v1.3.0 "/usr/bin/openshift-r" 50 minutes ago Up 50 minutes k8s_router.b921618d_router-1-94nq4_default_ca476a18-9372-11e6-beb5-000c294bdab8_9cdeb6a7
d7a68e36e987 openshift/origin-pod:v1.3.0 "/pod" 50 minutes ago Up 50 minutes k8s_POD.4a82dc9f_router-1-94nq4_default_ca476a18-9372-11e6-beb5-000c294bdab8_63ccb647
946d43c4d595 openshift/origin-pod:v1.3.0 "/pod" 50 minutes ago Up 50 minutes k8s_POD.9fa2fe82_docker-registry-1-bad99_default_ca436583-9372-11e6-beb5-000c294bdab8_f6f9f4a4
158ce37d3e59 openshift/origin:v1.3.0 "/usr/bin/openshift s" 50 minutes ago Up 50 minutes origin
Важное замечание. Docker при останове контейнера его не уничтожает. Его можно запустить. А вот команда
$sudo oc cluster down
уничтожает, действуя как
$ sudo docker stop container_name && docker rm container_name
То есть в полночь карета превратится в тыкву, кучер в крысу и так далее.
Web консоль доступна:
https://IP_addr:8443
CLI:
$ oc login https://IP_addr:8443
пары пароль логин:
admin
admin
developer
developer
Далее все по аналогии.
Из интересного
$ sudo docker exec -it origin /bin/bash
Попадаем во внутрь контейнера, можно посмотреть, что да как. Кстати, это CentOS 7.2.
Заключение
Это все познавательно, но по большей части для первоначального знакомства. Для более подробного знакомства ссылки ниже. Это уже для построения продакт-кластера на базе OpenShift.
Литература
- OpenShift Origin Latest Docs. Проект на гитхабе.
- RHEL Atomic Host.
- Project Atomic.
- Kubernetes.
- Docker.
Автор: zirf