Эксплуатация Docker swarm на openstack magnum

Установка DNF

Как оказалось, на master-ноде кластера docker swarm нет никакого пакетного менеджера (dnf, yum) и поставить его не так просто. Вот здесь описано, как это сделать:

https://developers.redhat.com/blog/2020/03/12/how-to-customize-fedora-coreos-for-dedicated-workloads-with-ostree#the_rpm_ostree_tool

rpm-ostree status
rpm-ostree install git
systemctl reboot

Скачать репозиторий byo-atomic

cd /opt
git clone https://github.com/jasonbrooks/byo-atomic.git

Ставим httpd

mkdir -p /etc/httpd/logs && mkdir -p /srv/rpm-ostree/repo && cd /srv/rpm-ostree/ && ostree --repo=repo init --mode=archive-z2

Заменить URL в файле /etc/ostree/remotes.d/fedora-atomic.conf

[remote "fedora-atomic"]
#url=https://kojipkgs.fedoraproject.org/atomic/25/
url=http://10.0.128.224/repo
branches=fedora-atomic/25/x86_64/docker-host;
gpg-verify=false

Обновить образ atomic

rpm-ostree upgrade

Установить пакетный менеджер:

rpm-ostree install dnf

Создание шаблона кластера:

openstack coe cluster template create swarm-cluster-tcoreos --image fedora-coreos --external-network provider --master-flavor a2.medium --flavor a2.medium --coe swarm --docker-volume-size 100 --fixed-network 3de10eb9-b4a2-40e9-bd1a-9f4c58c23855 --fixed-subnet 4a2a46d1-c968-474f-a468-d4f7c74a3e34

Cоздание кластера:

openstack coe cluster create swarm-c1 --cluster-template swarm-cluster-t1 --master-count 1 --node-count 2 --keypair docker

openstack coe cluster create swarm-c2 --cluster-template swarm-cluster-tcoreos --master-count 1 --node-count 2 --keypair docker

Установка magnum-ui плагина в horizon

Документация по установке плагина:

https://docs.openstack.org/magnum/latest/user/#horizon-interface

Приступаем:

cd /opt/horizon
gitg clone https://opendev.org/openstack/magnum-ui.git
cd magnum-ui & python setup.py sdist
cp -rv enabled horizon/openstack_dashboard/local/
horizon/tools/with_venv.sh pip install dist/package.tar.gz
systemctl restart apache2

Шаг 3 устанавливает ваш пакет в виртуальную среду Horizon. Можно установить плагин без использования with_venv.shи pip. Вместо этого пакет будет просто установлен в системе в каталог, определенный переменной PYTHON_PATH.

Источники

  1. FAQ Fedora-coreos: https://docs.fedoraproject.org/en-US/fedora-coreos/faq/
  2. Кастомизиция Fedora: https://developers.redhat.com/blog/2020/03/12/how-to-customize-fedora-coreos-for-dedicated-workloads-with-ostree#
  3. Пакетный менеджер и установка пакетов: https://russianfedora.github.io/FAQ/package-manager.html
  4. Building and updating Fedora Atomic image: https://docs.openstack.org/magnum/mitaka/dev/build-atomic-image.html