Установка OpenShift Origin на одном узле (Ubuntu 18.04)

Кому подходит это руководство
- Тестовые среды и лаборатории.
- Разработчики и DevOps, желающие быстро поднять OpenShift локально или на одном сервере.
Вводные определения
- OpenShift: платформа Kubernetes от Red Hat с расширениями для разработчиков и CI/CD.
- oc: клиентская утилита OpenShift для управления кластерами.
Основные требования
- Сервер с Ubuntu 18.04 LTS, минимум 2 ГБ RAM.
- Доступ root или привилегии sudo с установленным паролем.
- Свободный порт 8443 для веб-консоли и доступ к интернету для загрузки пакетов.
Важно: это руководство демонстрационное. Для продакшна используйте поддерживаемые, актуальные версии OpenShift и следуйте официальной документации.
Шаг 1. Обновление системы
Перед началом обновите пакеты:
apt-get update -y
apt-get upgrade -yПосле обновления перезагрузите сервер для применения всех изменений.
Шаг 2. Установка Docker CE
OpenShift запускает контейнеры поверх Docker. В Ubuntu 18.04 рекомендуется установить Docker CE из официального репозитория Docker.
Добавьте GPG-ключ Docker и репозиторий:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt-get update -y
apt-get install docker-ce -yПроверьте статус Docker:
systemctl status dockerОжидаемый пример вывода (информативно):
? docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-08-07 08:06:57 UTC; 33s ago
Docs: https://docs.docker.com
Main PID: 19052 (dockerd)
Tasks: 8
CGroup: /system.slice/docker.service
??19052 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.372084572Z" level=warning msg="Your kernel does not support swap memory limit"
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.372483783Z" level=warning msg="Your kernel does not support cgroup rt period"
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.372711298Z" level=warning msg="Your kernel does not support cgroup rt runtime"
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.373275104Z" level=info msg="Loading containers: start."
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.612047102Z" level=info msg="Default bridge (docker0) is assigned with an IP ad
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.712918131Z" level=info msg="Loading containers: done."
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.938574106Z" level=info msg="Docker daemon" commit=74b1e89 graphdriver(s)=overl
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.939341612Z" level=info msg="Daemon has completed initialization"
Aug 07 08:06:57 hitesh systemd[1]: Started Docker Application Container Engine.
Aug 07 08:06:57 hitesh dockerd[19052]: time="2019-08-07T08:06:57.989385865Z" level=info msg="API listen on /var/run/docker.sock"Если служба не запустилась, проверьте журналы systemd: journalctl -u docker --no-pager.
Шаг 3. Скачивание и установка клиента OpenShift (oc)
Скачайте релиз клиента OpenShift Origin (пример v3.9):
cd /opt
wget https://github.com/openshift/origin/releases/download/v3.9.0/openshift-origin-client-tools-v3.9.0-191fece-linux-64bit.tar.gzРаспакуйте и скопируйте бинарник oc в /usr/local/bin:
tar -zvxf openshift-origin-client-tools-v3.9.0-191fece-linux-64bit.tar.gz
cd openshift-origin-client-tools-v3.9.0-191fece-linux-64bit
cp oc /usr/local/bin/Проверьте версию:
oc versionПример вывода:
oc v3.9.0+191fece
kubernetes v1.9.1+a0ce1bc657
features: Basic-Auth GSSAPI Kerberos SPNEGOПримечание: используемый в примере релиз устарел; для новых установок подберите актуальную версию OpenShift.
Шаг 4. Настройка Docker для insecure registry OpenShift
Редактируйте конфигурацию Docker:
nano /etc/docker/daemon.jsonДобавьте:
{
"insecure-registries" : [ "172.30.0.0/16" ]
}Сохраните и перезапустите Docker:
systemctl restart dockerВажно: insecure registry допускает отсутствие TLS между Docker и внутренним реестром OpenShift — используйте это только в тестовой среде.
Шаг 5. Запуск кластера OpenShift
Запустите кластер, указав публичный IP сервера или hostname. В примерах используется IP 38.143.69.14 — замените на ваш.
oc cluster up --public-hostname=38.143.69.14Ожидаемый вывод (сокращённый):
WARNING: Binding DNS on port 8053 instead of 53, which may not be resolvable from all clients.
Using Docker shared volumes for OpenShift volumes
Using public hostname IP 38.143.69.14 as the host IP
Using 38.143.69.14 as the server IP
Starting OpenShift using openshift/origin:v3.9.0 ...
OpenShift server started.
The server is accessible via web console at:
https://38.143.69.14:8443
You are logged in as:
User: developer
Password:
To login as administrator:
oc login -u system:adminПримечание: если система сообщает про привязку DNS на порт 8053, это означает, что OpenShift поднял DNS на нестандартном порту — учет этого важен при тестировании с других машин.
Шаг 6. Вход и проверка состояния кластера
Войдите в кластер как администратор:
oc login -u system:adminПример успешного входа:
Logged into "https://38.143.69.14:8443" as "system:admin" using existing credentials.
You have access to the following projects and can switch between them with 'oc project ':
default
kube-public
kube-system
* myproject
openshift
openshift-infra
openshift-node
openshift-web-console
Using project "myproject".Переключитесь на проект default и проверьте статус:
oc project default
oc statusПример вывода oc status (обновлённый):
In project default on server https://38.143.69.14:8443
svc/docker-registry - 172.30.1.1:5000
dc/docker-registry deploys docker.io/openshift/origin-docker-registry:v3.9.0
deployment #1 deployed 3 minutes ago - 1 pod
svc/kubernetes - 172.30.0.1 ports 443->8443, 53->8053, 53->8053
svc/router - 172.30.106.228 ports 80, 443, 1936
dc/router deploys docker.io/openshift/origin-haproxy-router:v3.9.0
deployment #1 deployed 3 minutes ago - 1 pod
View details with 'oc describe /' or list everything with 'oc get all'.Шаг 7. Создание тестового проекта и приложения
Войдите как developer (пользователь: developer, пароль: developer):
oc loginСоздайте проект dev с отображаемым именем и описанием:
oc new-project dev --display-name="test - Dev" --description="Test Project"Создайте пример приложения на Ruby из Github-репозитория:
oc new-app centos/ruby-22-centos7~https://github.com/openshift/ruby-ex.gitПроверьте статус:
oc statusЕсли сборка запускается, подождите завершения build pod и деплоя.
Шаг 8. Доступ к веб-консоли
Откройте браузер и перейдите по адресу https://ваш-ip:8443 (в примере https://38.143.69.14:8443). Введите учетные данные developer/developer.

После входа вы увидите панель управления OpenShift:

Перейдите в My Project и откройте созданный проект:

Внутри вы увидите задеплоенное приложение:

Поздравляем — OpenShift поднят и работает.
Техподдержка и устранение неисправностей
Общие проблемы и шаги решения:
- Docker не запускается: проверьте
journalctl -u dockerи версию ядра; убедитесь, что cgroups включены. - oc cluster up забрасывает ошибки образов: проверьте доступ к Docker Hub и локальную сеть.
- Проблемы с портами: убедитесь, что порты 8443, 8053 и 80/443 не заняты и правила firewall позволяют входящие соединения.
- Веб-консоль недоступна: проверьте
docker psна наличие контейнеров OpenShift, иoc get pods -Aдля всех подов.
Быстрый отладочный чек-лист:
- systemctl status docker
- docker ps
- oc get nodes
- oc get pods -A
- journalctl -u origin (если использовался systemd unit)
Откат и удаление single-node кластера
Чтобы удалить локальный кластер, выполните:
oc cluster downЭто остановит контейнеры и удалит созданные ресурсы. Также можно удалить бинарник oc: rm /usr/local/bin/oc.
Риски и рекомендации по безопасности
- insecure-registries снижает защиту образов — запрещён для продакшна.
- Используйте TLS и отдельные учетные записи для продакшн-глобальных реестров.
- Ограничьте доступ к порту 8443 через firewall, настройте RBAC и аудит.
Рекомендации по альтернативам
- Для экспериментов используйте OKD (community upstream of OpenShift) или Minikube/Kind для чистого Kubernetes.
- Для продакшн-кластеров используйте официальные процедуры развертывания OpenShift с несколькими узлами и HA.
Роли и чек-листы
Администратор:
- Убедиться, что сервер соответствует требованиям.
- Установить Docker, oc, настроить firewall.
- Запустить
oc cluster upи проверить поды.
Разработчик:
- Войти как developer.
- Создать проект
oc new-project. - Создать приложение
oc new-appи следить за build/deploy.
Критерии приёмки
- Веб-консоль доступна по https://ваш-ip:8443.
oc statusне показывает ошибок в core сервисах (registry, router).- Успешно создан и задеплоен тестовый pod приложения.
Короткая сводка
- Обновите систему, установите Docker CE.
- Скачайте oc и настройте insecure registry для тестовой среды.
- Запустите
oc cluster upи создайте проект с примерным приложением.
1-строчный глоссарий:
- oc — клиент OpenShift для управления кластерами; OpenShift — расширенный дистрибутив Kubernetes с возможностями для разработчиков.
Завершение
Вы успешно развернули single-node OpenShift Origin на Ubuntu 18.04. Для задач продакшна планируйте многоузловую архитектуру, защиту реестров и резервирование данных. Вопросы по настройке или возникающим ошибкам можно задать — опишите шаг и вывод ошибок.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента