unip-controller/deploy/prerequisites.md
2025-04-15 20:56:15 +03:00

6.4 KiB
Raw Blame History

Предусловия

  1. Настроенная платформа Kubernetes;
  2. Доступны подключаемые системы;
  3. Зарегистрированы и настроены на работу с платформой Kubernetes два доменных имени;
  4. Доступны реестры образов или кэш образов с необходимыми для развертывания компонентов фреймворка образами;

Платформа Kubernetes

Платформа Kubernetes включает в себя кластер аппаратных или виртуальных узлов и развернутые на нем системные сервисы.

Требования к ПО Kubernetes:

  1. Версия не ниже 1.24;

Требования к аппаратному обеспечению:

  1. Мастер-узел: 1 узел, 2-core CPU, 4 Гб RAM, 50 Гб Storage;
  2. Рабочие узлы: 2 узла, каждый узел 2-core CPU, 6 Гб RAM, 50 Гб Storage;

Для сервиса managed Kubernetes мастер-узел может быть создан и управляться автоматически провайдером сервиса.

Требования к системным сервисам платформы Kubernetes:

  1. Драйвер S3 CSI от Yandex;
  2. Сервис DNS CoreDNS;
  3. Контроллер сетевых политик Cilium для обеспечения сетевой связности;
  4. Балансировщик нагрузки, через который осуществляются внешние соединени; с развернутыми на платформе сервисами фреймворка и приложениями;
  5. Контроллер менеджер сертификатов cert-manager;
  6. Контроллер Ingress Ingress-Nginx;

Работоспособность драйвера S3 CSI от Yandex на установках Kubernetes вне Yandex Cloud не проверена. Существуют проблемы с работоспособностью при использовании microk8s.

При использовании managed кластера Kubernetes рекомендуется при настройке сразу выбрать Cilium в качестве контроллера сетевых политик. Последующее изменение может потребовать пересоздание кластера (это верно по крайней мере для managed Kubernetes в Yandex Cloud).

Требования к пользовательскому интерфейсу:

  1. Настроен доступ через kubectl (файл KUBECONFIG);

Подключаемые системы

Подключаемые системы должны быть доступны через программные интерфейсы со стороны сервисов фреймворка.

Система управления версиями

Хранит копии репозиториев, используемых для развертывания приложений в фреймворке.

Требования:

  1. git программный интерфейс;

Реестр образов и пакетов

Реализует внутреннее хранилище образов контейнеров, кэш образов, пакетов Python, кэш пакетов.

Требования:

  1. Docker Registry HTTP API V2 программный интерфейс;
  2. PyPI программный интерфейс;

Системная СУБД

РСУБД на базе PostgreSQL, используемая другими компонентами фреймворка для хранения данных.

Требования:

  1. Версия PostgreSQL 16 или выше;

Объектное хранилище

Хранит данные приложений.

Требования:

  1. S3 API Version 2006-03-01 программный интерфейс;

Вычислительный кластер

Используется для запуска вычислительных задач, предоставляет метрики о работе задач.

Требования:

  1. Планировщик задач Slurm;

Внешний поставщик реквизитов (OIDC провайдера)

Требования:

  1. OIDC провайдер Keycloak;

Доменные имена

Должны быть зарегистрированы и настроены на работу с платформой Kubernetes два доменных имени, первое - для сервисов фреймворка и размещаемых на фреймворке приложений, второе - для реестра образов (пояснение приведено ниже).

Доменное имя для сервисов фреймворка и размещаемых на фреймворке приложений называется основным.

Компоненты фреймворка, и размещаемые на фреймворке приложения доступны по адресам вида https://{domain}/{component} (например, https://domain.ru/forgejo) или https://{domain}/{app} (например, https://domain.ru/app1).

Реестр образов не может быть доступен по адресу такого вида, поскольку docker cli распознает префикс в адресе вида https://{domain}/{prefix} частью имени образа.

По этой причине рекомендуется зарегистрировать два доменных имени, основное и для реестра образов.

Если основное доменное имя имеет вид domain.ru, то для реестра образов могут быть использованы имена registry-domain.ru или registry.domain.ru.

Доступ к реестру образов с образами компонентов фреймворка

  1. unip-controller:0.3.7-9c53a08 - образ контроллеров, сервисов управления данными и отслеживания экспериментов;
  2. quay.io/argoproj/argocd:v2.9.0 - образ сервиса развертывания;