Kubeflow Chart Plugins
Развёртывание плагинов Kubeflow в Alauda AI версии >= 2.0. Включает:
- kfbase: базовые компоненты Kubeflow, включая аутентификацию и авторизацию, центральную панель управления, notebook, pvc-viewer, tensorboards, volumes, интерфейс модели реестра, интерфейс конечных точек kserve, сервис API каталога моделей и др.
- chart-kubeflow-model-registry: экземпляр Kubeflow Model Registry (Helm Chart)
- kfp: Kubeflow Pipeline
- kftraining: Kubeflow Training Operator (устаревший)
- kubeflow-trainer: плагин управления задачами обучения Kubeflow, также известный как Kubeflow Trainer v2 (заменяет kftraining)
Содержание
Подготовка окруженияНастройка плагина oauth2-proxyПодключение компонентовШаги развертывания1. Развертывание kfbase (Kubeflow Base)2. Создание пользователя Kubeflow и привязка к namespace3. Если пользователь привязывается к уже созданному namespace, необходимо также выполнить следующую настройку:4. Развертывание kfp (Kubeflow Pipeline) и kftrainer (Kubeflow Training Operator)5. Развертывание chart-kubeflow-model-registry (Kubeflow Model Registry)6. Развертывание kubeflow-trainer (Kubeflow Trainer v2)Подготовка окружения
- Запущенная среда ACP
- Убедитесь, что Alauda AI развернута (требуется версия Alauda AI >= 2.0)
- Разверните ASM в бизнес-кластере, где будет развернут Kubeflow (если ASM не был развернут на предыдущем шаге) (на данный момент поддерживается ASM v1, поддержка ASM v2 ожидается в будущем)
- Разверните плагин LWS (Alauda Build of LeaderWorkerSet), который является зависимостью Kubeflow Trainer v2.
- Настройте плагин oauth2-proxy, как описано ниже
Настройка плагина oauth2-proxy
Получите сертификат CA платформенного dex для последующего использования в Global кластере:
Затем перейдите в глобальный кластер или в acp Platform Management -> Resource Management, обновите ресурс ServiceMesh, добавив следующий контент в поле spec:
Примечание: Если spec.values.pilot.jwksResolverExtraRootCA уже настроен, можно конфигурировать только spec.meshConfig.extensionProviders, добавляя новые, не удаляя существующие spec.meshConfig.extensionProviders
Подключение компонентов
Получите установочные пакеты для следующих плагинов и используйте инструмент violet для завершения подключения.
- kfbase: базовый функционал Kubeflow
- chart-kubeflow-model-registry: Kubeflow Model Registry
- kfp: функционал Kubeflow Pipeline
- kftraining: Kubeflow Training Operator (устаревший)
- kubeflow-trainer: плагин управления задачами обучения Kubeflow (заменяет kftraining)
Примечание: Для плагина kftraining, если требуется поддержка volcano scheduler, необходимо сначала развернуть volcano, затем kftraining.
Шаги развертывания
1. Развертывание kfbase (Kubeflow Base)
В разделе Cluster Plugins найдите плагин kfbase (Kubeflow Base), заполните конфигурацию согласно подсказкам на странице и дождитесь завершения развертывания компонента.
После развертывания необходимо выполнить следующие действия для настройки перенаправления dex:
В Administrator - System Settings - Platform Parameters нажмите кнопку "Edit" справа от Platform Access URLs и добавьте URL перенаправления в формате https://<your-kubeflow-domain>:<port>/, например, https://192.168.139.133:30443/. Обратите внимание, что хост должен совпадать с oidcRedirectURL, настроенным на странице развертывания плагина kfbase, а порт — с istioGatewayNodeportHTTPS.
После развертывания в навигации Tools в Alauda AI появится пункт меню Kubeflow. Нажмите, чтобы перейти в интерфейс Kubeflow.
2. Создание пользователя Kubeflow и привязка к namespace
Перед первым входом в Kubeflow необходимо связать пользователя ACP с namespace. Пользователи могут использовать следующий пример: создайте namespace kubeflow-admin-cpaas-io и привяжите пользователя admin@cpaas.io как владельца.
Примечание: Если ресурс Profile уже был развернут при установке Alauda AI, этот шаг можно пропустить
Примечание: Возможно, потребуется понизить уровень Pod Security Admission в namespace пользователя для создания экземпляров Notebook и др.
3. Если пользователь привязывается к уже созданному namespace, необходимо также выполнить следующую настройку:
Если на предыдущем шаге Alauda AI была развернута, namespace kubeflow-admin-cpaas-io создан, ресурс Profile также создан, но namespace не выбирается, можно создать привязку ролей для аккаунта, используя следующий ресурс.
4. Развертывание kfp (Kubeflow Pipeline) и kftrainer (Kubeflow Training Operator)
Аналогично, в разделе Cluster Plugins найдите kfp (Kubeflow Pipeline) и kftrainer (Kubeflow Training Operator).
Примечание: После развертывания Kubeflow Pipeline функции, связанные с Pipeline, станут доступны в интерфейсе Kubeflow. Примечание: Kubeflow Training Operator — это планировщик фоновых задач, он не отображается в меню UI и не имеет интерфейсных функций.
5. Развертывание chart-kubeflow-model-registry (Kubeflow Model Registry)
В Catalog или Administrator - Marketplace - Chart Repositories найдите chart-kubeflow-model-registry, нажмите кнопку "Create", заполните имя развертывания, проект, namespace (пример места развертывания), версию Chart, затем скопируйте конфигурацию values.yaml справа налево, измените следующие параметры согласно информации о кластере:
Примечание: Устанавливать необходимо в namespace, который уже привязан к Kubeflow user Profile, иначе UI Model Registry не отобразится
- global.registry.address: адрес реестра образов, используемый текущей платформой
- mysqlStorageClass: класс хранения mysql, используемый Model Registry. Должен поддерживаться целевым кластером развертывания.
- mysqlStorageSize: размер хранилища mysql, используемый Model Registry.
- mysqlDataBase: имя базы данных (создаётся автоматически).
- modelRegistryDisplayName: имя экземпляра Model Registry для развертывания
- modelRegistryDescription: краткое описание экземпляра Model Registry для развертывания
Примечание: После запуска экземпляра Model Registry обновите меню Model Registry в левой навигации страницы Kubeflow, чтобы увидеть развернутый экземпляр. До развертывания первого экземпляра интерфейс Kubeflow Model Registry будет пустым.
Примечание: Экземпляр Model Registry ограничивает сетевые запросы из namespace, отличных от текущего. Если необходимо разрешить доступ из других namespace, вручную отредактируйте kubectl -n <your-namespace> edit authorizationpolicy model-registry-service и согласно документации istio добавьте разрешённые namespace.
Примечание: Можно установить несколько экземпляров Model Registry в разных namespace, каждый экземпляр работает независимо.
6. Развертывание kubeflow-trainer (Kubeflow Trainer v2)
Примечание: Перед развертыванием kubeflow-trainer необходимо удалить kftraining (Kubeflow Training Operator), если он уже развернут.
Примечание: Убедитесь, что плагин LWS (Alauda Build of LeaderWorkerSet) установлен до развертывания kubeflow-trainer, так как LWS является зависимостью kubeflow-trainer.
В разделе Cluster Plugins найдите kubeflow-trainer (Kubeflow Trainer v2),
нажмите кнопку "Install", выберите опции включения JobSet
и нажмите "Install" для завершения развертывания.