Podman-compose-to-kube: различия между версиями
Kaf (обсуждение | вклад) |
Kaf (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
Данный документ описывает решение данной проблемы путем использования команды <code>podman-compose</code>. | Данный документ описывает решение данной проблемы путем использования команды <code>podman-compose</code>. | ||
В качестве примера разворачивания стека будет использоваться <code>docker-compose</code> стек [https://github.com/containers/podman-compose/tree/devel/examples/hello-python hello-python] проекта <code>podman-compose</code>. | В качестве примера разворачивания стека будет использоваться <code>docker-compose</code> стек [https://github.com/containers/podman-compose/tree/devel/examples/hello-python hello-python] проекта <code>podman-compose</code>. | ||
Будут рассмотрены вопросы разворачивания миграции как <code>rootfull</code> так и <code>rootless-решений</code>. | |||
=== Установка ПО, создание пользователей, разворачивание kubernetes === | |||
Для разворачивания docker-compose стеков необходимо установить пакет <code>podman-compose</code>. | |||
Текущая (16.01.2024) версия <code>1.0.6</code> разворачивает контейнеры и тома с именами, которые после генерации на их основе YML-манифестов требуют дополнительной корректировки манифестов. В последующих версиях возможны изменения, которые обеспечат коррекное формирование имен контейнеров и томов. | |||
==== rootfull-окружение ==== | |||
Разворачивание решений в <code>roofull</code> окружении производится под пользователем root. | |||
В создании других пользователей необходимости нет. | |||
Разворачивание <code>roofull-kubernetes</code> описано в документе [[Kubernetes]]. | |||
==== rootless-решение ==== | |||
Разворачивание <code>rooless-kubernetes</code> описано в документе [[Rootless kubernetes]]. | |||
В процессе его разворачивания создается пользователь <code>u7s-admin</code>. Вы можете разворачивать rootless podman-compose стек либо в рамках этого пользователя либо создать пользователя, имеющий право загружать образы с внешний репозиториев. В защищенных платформах <code>c10f.</code> это пользователи, входящие в группу <code>podman_dev</code>. | |||
Пользователь <code>u7s-admin</code> входит в эту группу. | |||
=== Разворачивание docker-compose стека в podman-compose === | === Разворачивание docker-compose стека в podman-compose === |
Версия от 14:45, 16 января 2024
podman-compose как средство миграция docker-compose решений в kubernetes
Одной из основных проблем миграции docker-compose
(docker swarm
) решений в kubernetes
является (полу)автоматическия генерация kubernetes-манифестов
из YAML-файлов описания стека сервисов
.
Существует достаточно бедный набор инструментов, решающий данную проблему.
Данный документ описывает решение данной проблемы путем использования команды podman-compose
.
В качестве примера разворачивания стека будет использоваться docker-compose
стек hello-python проекта podman-compose
.
Будут рассмотрены вопросы разворачивания миграции как rootfull
так и rootless-решений
.
Установка ПО, создание пользователей, разворачивание kubernetes
Для разворачивания docker-compose стеков необходимо установить пакет podman-compose
.
Текущая (16.01.2024) версия 1.0.6
разворачивает контейнеры и тома с именами, которые после генерации на их основе YML-манифестов требуют дополнительной корректировки манифестов. В последующих версиях возможны изменения, которые обеспечат коррекное формирование имен контейнеров и томов.
rootfull-окружение
Разворачивание решений в roofull
окружении производится под пользователем root.
В создании других пользователей необходимости нет.
Разворачивание roofull-kubernetes
описано в документе Kubernetes.
rootless-решение
Разворачивание rooless-kubernetes
описано в документе Rootless kubernetes.
В процессе его разворачивания создается пользователь u7s-admin
. Вы можете разворачивать rootless podman-compose стек либо в рамках этого пользователя либо создать пользователя, имеющий право загружать образы с внешний репозиториев. В защищенных платформах c10f.
это пользователи, входящие в группу podman_dev
.
Пользователь u7s-admin
входит в эту группу.
Разворачивание docker-compose стека в podman-compose
Экспорт развернутого стека в kubernetes-манифесты
Копирование локальных образов в rootless окружении
В rootless-окружении образы, созданные podman-compose
хранятся в каталоге /var/lib/u7s-admin/.local/share/containers/storage/
. Образы же для kubernetes хранятся в другом каталоге /var/lib/u7s-admin/.local/share/usernetes/containers/storage/
. Для образов, загружаемых с регистраторов это несущественно, так как они подгружаются при запуске POD
'а. Образы же, созданные локально, как в нашем случае образ localhost/hello-py-aioweb
необходимо перенести в container-storage
для kubernetes-образов командой skopeo
:
# skopeo copy \ containers-storage:[/var/lib/u7s-admin/.local/share/containers/storage/]localhost/hello-py-aioweb \ containers-storage:[/var/lib/u7s-admin/.local/share/usernetes/containers/storage/]localhost/hello-py-aioweb
и изменить собственника перенесенного образа с root
на u7s-admin
:
# chown -R u7s-admin:u7s-admin /var/lib/u7s-admin/.local/share/usernetes/containers/storage/