6.4 KiB
Предусловия
- Настроенная платформа Kubernetes;
- Доступны подключаемые системы;
- Зарегистрированы и настроены на работу с платформой Kubernetes два доменных имени;
- Доступны реестры образов или кэш образов с необходимыми для развертывания компонентов фреймворка образами;
Платформа Kubernetes
Платформа Kubernetes включает в себя кластер аппаратных или виртуальных узлов и развернутые на нем системные сервисы.
Требования к ПО Kubernetes:
- Версия не ниже 1.24;
Требования к аппаратному обеспечению:
- Мастер-узел: 1 узел, 2-core CPU, 4 Гб RAM, 50 Гб Storage;
- Рабочие узлы: 2 узла, каждый узел 2-core CPU, 6 Гб RAM, 50 Гб Storage;
Для сервиса managed Kubernetes мастер-узел может быть создан и управляться автоматически провайдером сервиса.
Требования к системным сервисам платформы Kubernetes:
- Драйвер S3 CSI от Yandex;
- Сервис DNS CoreDNS;
- Контроллер сетевых политик Cilium для обеспечения сетевой связности;
- Балансировщик нагрузки, через который осуществляются внешние соединени; с развернутыми на платформе сервисами фреймворка и приложениями;
- Контроллер менеджер сертификатов cert-manager;
- Контроллер Ingress Ingress-Nginx;
Работоспособность драйвера S3 CSI от Yandex на установках Kubernetes вне Yandex Cloud не проверена. Существуют проблемы с работоспособностью при использовании microk8s.
При использовании managed кластера Kubernetes рекомендуется при настройке сразу выбрать Cilium в качестве контроллера сетевых политик. Последующее изменение может потребовать пересоздание кластера (это верно по крайней мере для managed Kubernetes в Yandex Cloud).
Требования к пользовательскому интерфейсу:
- Настроен доступ через kubectl (файл KUBECONFIG);
Подключаемые системы
Подключаемые системы должны быть доступны через программные интерфейсы со стороны сервисов фреймворка.
Система управления версиями
Хранит копии репозиториев, используемых для развертывания приложений в фреймворке.
Требования:
- git программный интерфейс;
Реестр образов и пакетов
Реализует внутреннее хранилище образов контейнеров, кэш образов, пакетов Python, кэш пакетов.
Требования:
- Docker Registry HTTP API V2 программный интерфейс;
- PyPI программный интерфейс;
Системная СУБД
РСУБД на базе PostgreSQL, используемая другими компонентами фреймворка для хранения данных.
Требования:
- Версия PostgreSQL 16 или выше;
Объектное хранилище
Хранит данные приложений.
Требования:
- S3 API Version 2006-03-01 программный интерфейс;
Вычислительный кластер
Используется для запуска вычислительных задач, предоставляет метрики о работе задач.
Требования:
- Планировщик задач Slurm;
Внешний поставщик реквизитов (OIDC провайдера)
Требования:
- 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.
Доступ к реестру образов с образами компонентов фреймворка
- unip-controller:0.3.7-9c53a08 - образ контроллеров, сервисов управления данными и отслеживания экспериментов;
- quay.io/argoproj/argocd:v2.9.0 - образ сервиса развертывания;