Установка и запуск OpenShift на Rocky 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

Подробнее об установке Docker на странице Установка Docker на Linux.

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

{
   "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 (в самом низу страницы):

Копируем ссылку на загрузку openshift

Используем ссылку для загрузки архива на сервере, например:

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-адрес, на котором должен слушать запросы наш кластер.

Некоторое время, команда будет работать. После мы увидим:

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

[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

# Linux # Серверы # Виртуализация # DevOps
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет