Thank you for reading this post, don't forget to subscribe!
OpenShift - это семейство программных продуктов для контейнеризации, разработанных Red Hat. Его флагманским продуктом является OpenShift Container Platform - локальная платформа как услуга, построенная на основе контейнеров Linux, организованных и управляемых Kubernetes на основе Red Hat Enterprise Linux
Данная инструкция позволит быстро развернуть на одном сервере OpenShift. Так как данная инструкция не описывает процесс создания кластера, у нее нет практического применения для крупных инсталляций.
Установка и настройка Docker
Для работы Openshift необходимо, чтобы был установлен Docker. Рассмотрим процесс его установки и настройки.
1. Устанавливаем wget:
dnf install wget
Скачиваем конфигурационный файл для репозитория докер:
wget -P /etc/yum.repos.d/ https://download.docker.com/linux/centos/docker-ce.repo
2. Теперь устанавливаем docker:
dnf install docker-ce docker-ce-cli
И разрешаем автозапуск сервиса и стартуем его:
systemctl enable docker --now
3. Чтобы убедиться, что docker в рабочем состоянии, выполняем команду:
docker run hello-world
Мы должны увидеть:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker…
4. Внесем изменения в два конфигурационных файла.
В первый:
vi /etc/containerd/config.toml
Добавим:
[registries.insecure]
registries = ['172.30.0.0/16']
И второй (создаем):
vi /etc/docker/daemon.json
1 2 3 4 5 |
{ "insecure-registries": [ "172.30.0.0/16" ] } |
* опция insecure-registries / registries.insecure разрешает подсеть, для которой может использоваться реестр образов, для подключения к которому не требуется наличие безопасного сертификата (например, может использоваться самоподписанный).
Перезапускаем докер:
systemctl restart docker
Настройка системы
Внесем некоторые настройки в систему.
1. Ядро
Разрешаем форвардин для предоставления доступа к другим подсетям и сети Интернет создаваемым контейнерам.
Открываем конфигурационный файл:
vi /etc/sysctl.conf
И добавим строку:
net.ipv4.ip_forward = 1
Применяем настройки:
sysctl -p /etc/sysctl.conf
2. Брандмауэр
В системе Rocky Linux используется утилита для управления брандмауэром на базе firewalld. Но мы рассмотрим также и iptables.
а) firewalld.
Открываем порты командами:
firewall-cmd --permanent --permanent --add-port={80,443,8443}/tcp
firewall-cmd --permanent --permanent --add-port={53,8053}/udp
* где:
- 80,443,8443 — порты для доступа к веб-интерфейсу.
- 53,8053 — для сервера DNS.
Применяем настройки:
firewall-cmd --reload
б) iptables.
Если в нашей системе Rocky Linux используется iptables, вводим команды:
iptables -I INPUT -p tcp --match multiport --dports 80,443,8443 -j ACCEPT
iptables -I INPUT -p udp --match multiport --dports 53,8053 -j ACCEPT
Для сохранения правил вводим:
service iptables save
Установка Openshift и запуск кластера
Переходим к установке и запуску Openshift.
Установка
Процесс установки заключается в загрузке бинарника и размещении его в каталоге /usr/local/bin. Переходим на страницу загрузки последней версии Openshift. Копируем ссылку на загрузку архива openshift-origin-client (в самом низу страницы):
Используем ссылку для загрузки архива на сервере, например:
wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
Распакуем архив:
tar xvf openshift-origin-client-tools*.tar.gz
Переносим бинарники в каталог /usr/local/bin:
mv openshift-origin-client-tools-*/{oc,kubectl} /usr/local/bin/
Проверяем работу утилиты oc:
oc version
Мы должны увидеть что-то на подобие:
oc v3.11.0+0cbc58b
kubernetes v1.11.0+d4cacc0
features: Basic-Auth GSSAPI Kerberos SPNEGO
Запуск
Openshift представляет из себя набор контейнеров Docker, которые представляют из себя сервис. Для их запуска вводим:
oc cluster up --public-hostname=192.168.1.30
* где 192.168.1.30 — IP-адрес, на котором должен слушать запросы наш кластер.
Некоторое время, команда будет работать. После мы увидим:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Login to server ... Creating initial project "myproject" ... Server Information ... OpenShift server started. The server is accessible via web console at: https://192.168.1.30:8443 You are logged in as: User: developer Password: <any value> To login as administrator: oc login -u system:admin |
Открываем браузер и переходим по адресу https://<IP-адрес сервера>:8443 (в нашем примере, 192.168.1.30) — у нас откроется страница входа в систему.
Вводим логин system и пароль admin.
Автозапуск
При перезагрузке сервера, наш кластер не будет загружаться автоматически. Для того, чтобы исправить это, создадим юнит в systemd:
vi /etc/systemd/system/opeshift.service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[Unit] Description=OpenShift oc cluster up Service After=docker.service Requires=docker.service [Service] ExecStart=/usr/local/bin/oc cluster up --public-hostname=192.168.1.30 ExecStop=/usr/local/bin/oc cluster down Restart=no StandardOutput=syslog StandardError=syslog SyslogIdentifier=occlusterup User=root Type=oneshot RemainAfterExit=yes TimeoutSec=300 [Install] WantedBy=multi-user.target |
* обратите внимание на опцию public-hostname, в которой необходимо указать адрес, на котором должен слушать кластер.
Перезапустим systemd:
systemctl daemon-reload
И разрешим автозапуск:
systemctl enable opeshift --now
Проверим работу службы:
systemctl status opeshift