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

112 lines
6.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Предусловия
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 - образ сервиса развертывания;