Установка и запуск OpenShift на Rocky Linux
Данная инструкция позволит быстро развернуть на одном сервере OpenShift. Так как данная инструкция не описывает процесс создания кластера, у нее нет практического применения для крупных инсталляций.
Установка Docker
Настройка 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 (в самом низу страницы):
Используем ссылку для загрузки архива на сервере, например:
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