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