Установка и запуск OpenShift на Rocky Linux

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

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

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

Откры­ва­ем бра­у­зер и пере­хо­дим по адре­су https://<IP-адрес сервера>:8443 (в нашем при­ме­ре, 192.168.1.30) — у нас откро­ет­ся стра­ни­ца вхо­да в систему.

Вво­дим логин system и пароль admin.

Автозапуск

При пере­за­груз­ке сер­ве­ра, наш кла­стер не будет загру­жать­ся авто­ма­ти­че­ски. Для того, что­бы испра­вить это, созда­дим юнит в systemd:

vi /etc/systemd/system/opeshift.service

* обра­ти­те вни­ма­ние на опцию public-hostname, в кото­рой необ­хо­ди­мо ука­зать адрес, на кото­ром дол­жен слу­шать кластер.

Пере­за­пу­стим systemd:

systemctl daemon-reload

И раз­ре­шим автозапуск:

systemctl enable opeshift --now

Про­ве­рим рабо­ту службы:

systemctl status opeshift