oeDeploy для упрощенного развертывания ПО
В среде разработки Linux развертывание программного обеспечения часто становится проблемой, потому как требует довольно большого объема рутинных операций. Независимо от того, являетесь ли вы новичком или опытным разработчиком, вы столкнетесь с проблемами управления зависимостями, ограниченным доступом к сети и громоздкой конфигурацией при установке сложных программных стеков. Чтобы упростить этот процесс сообщество openEuler / OpenScaler запустило новый инструмент с открытым исходным кодом oeDeploy.
oeDeploy – это легкий инструмент развертывания программного обеспечения, который призван помочь разработчикам быстро и эффективно развертывать сложные программные среды, будь то одноузловые или распределенные.
С помощью oeDeploy пользователи могут быстро развернуть, например, модель DeepSeek локально или легко развернуть относительно сложные системы, такие как Kubernetes (k8s), в кластере и продолжить развертывание другого программного обеспечения, такого как Kubeflow, KubeRay и т.д., на основе кластера k8s. Все это может быть сделано с помощью простой последовательности действий, что значительно снижает порог доступа к развертыванию сложных сред.
В рамках этой статьи мы воспользуемся сервером, который располагает x86_64 совместимой серверной ОС openScaler 24.03 LTS SP1 и попробуем развернуть кластер Kubernetes.
Конфигурация тестируемого сервера
Hardware: сервер с 2шт. CPU Intel Xeon Gold 5118 (2,3 ГГц / 12 ядер), 256 GB RAM DDR4 2666Hz.
Операционная система: openScaler 24.03 LTS SP1.
Подготовка тестовой ОС
Для теста была установлена ОС openScaler 24.03 LTS SP1 в минимальной конфигурации (minimal install). Для работы кластера в целях теста можно воспользоваться 3шт. виртуальными машинами с минимальной конфигурацией 2 ядра CPU, 4 ГБ RAM или можно взять физические серверы с характеристиками не хуже, чем указанные виртуальные машины. В качестве ОС везде также используется openScaler 24.03 LTS SP1.
Установка инструмента oeDeploy
На master узле (node) загрузите и установите средство командной строки oeDeploy oedp. Выполните следующую последовательность действий:
- Загрузим rpm-пакет из репозитория oepkgs.net:
- Выполнить непосредственно установку пакета командой:
dnf install oedp-1.0.0-20250208.x86_64.rpm
Установка завершена и далее требуется загрузить архив с plug-in ПО для развертывания k8s. Полная документация по инструменту доступна по ссылке.
Загрузка plug-in для установки k8s-кластера
Требуется загрузить архив plug-in и для этого потребуется выполнить следующую команду:
Для его распаковки выполним следующее:
tar -zxvf kubernetes-1.31.1.tar.gz
Чтобы убедиться, что все на данном этапе выполнено правильно выполним следующую команду:
oedp info -p ./kubernetes-1.31.1
Пример её выполнения можно увидеть на следующем изображении:

Установка k8s-кластера
Перед началом установки потребуется указать в конфигурационном файле данные доступа к master и worker node. Эти данные требуется описать в конфигурационном файле:
vi kubernetes-1.31.1/config.yaml
Этот файл должен выглядеть примерно следующим образом:
all:
children:
masters:
hosts:
# master
192.16.5.48: # e.g. 192.168.10.1
ansible_host: 192.16.5.48 # e.g. 192.168.10.1
ansible_port: 22
ansible_user: root
ansible_password: “UserHW37%&”
architecture: amd64 # e.g. [ amd64, arm64 ]
oeversion: 24.03-LTS # e.g. [ 22.03-LTS, 24.03-LTS ]
runtime: docker # e.g. [ docker, containerd ]
# HOST_IP2:
# ansible_host: HOST_IP2
# ansible_port: 22
# ansible_user: root
# ansible_password: “”
# architecture: amd64
# oeversion: 24.03-LTS
# runtime: docker
# HOST_IP3:
# ansible_host: HOST_IP3
# ansible_port: 22
# ansible_user: root
# ansible_password: “”
# architecture: amd64
# oeversion: 24.03-LTS
# runtime: docker
workers:
hosts:
192.16.5.143:
ansible_host: 192.16.5.143
ansible_port: 22
ansible_user: root
ansible_password: “UserHW43$#”
architecture: amd64
oeversion: 24.03-LTS
runtime: docker
192.16.5.138:
ansible_host: 192.16.5.138
ansible_port: 22
ansible_user: root
ansible_password: “UserHW238#^”
architecture: amd64
oeversion: 24.03-LTS
runtime: docker
new-workers: # new-workers
hosts:
vars:
ansible_ssh_common_args: ‘-o StrictHostKeyChecking=no’
init_cluster_force: “true” # e.g. [ “true”, “false” ]
remove_master_no_schedule_taints: “true”
service_cidr: 10.96.0.0/16
pod_cidr: 10.244.0.0/16 # pod ip
certs_expired: 3650
# lb_kube_apiserver_ip:
lb_kube_apiserver_port: 8443
has_deployed_containerd: “false” # e.g. [ “true”, “false” ] containerd
kubernetes_version: 1.31.1
calico_version: 3.28.2
pause_image: “registry.k8s.io/pause:3.10”
Далее следует дополнительно установить следующую библиотеку python3-netaddr для успешной установки:
dnf install python3-netaddr
Процесс установки k8s-кластера запускается следующей командой:
oedp run install -p ./kubernetes-1.31.1
Успешный процесс установки k8s-кластера будет сопровождаться примерно такого содержания текстом:
PLAY RECAP ****************************************************************************
192.16.5.138 : ok=45 changed=21 unreachable=0 failed=0 skipped=15 rescued=0 ignored=0
192.16.5.143 : ok=45 changed=21 unreachable=0 failed=0 skipped=15 rescued=0 ignored=0
192.16.5.48 : ok=58 changed=29 unreachable=0 failed=0 skipped=17 rescued=0 ignored=0
[ INFO ] – [run_action] – Execute succeeded
Проверка запуска кластера
На mastrer узле выполнить команду:
kubectl get pod -A
Пример успешного выполнения и запущенного кластера будет такой:

Выполнив описанные выше действия, вы можете использовать oeDeploy для эффективного и удобного развертывания кластера k8s. В настоящее время oeDeploy уже поддерживает некоторые основные подключаемые модули, включая DeepSeek-R1, и находится в процессе расширения поддерживаемого ПО.