Проверка файлов поставки
Если дистрибутив передан несколькими частями, сначала объедините их:
cat ml-offline-shipment-*.tar.xz.part-* > ml-offline-shipment.tar.xz
Проверьте контрольную сумму архива:
sha256sum -c ml-offline-shipment.tar.xz.sha256
Ожидаемый результат содержит OK.
Распакуйте архив:
mkdir -p polymatica-ml-offline tar -xJf ml-offline-shipment.tar.xz \ -C polymatica-ml-offline cd polymatica-ml-offline
Проверьте контрольные суммы содержимого:
sha256sum -c release/checksums.txt
Подготовка конфигурации
Создайте рабочий конфигурационный файл:
cp install/offline-install.conf.example install/offline-install.conf
chmod 600 install/offline-install.conf Откройте install/offline-install.conf и укажите параметры целевого окружения.
Основные параметры:
NAMESPACE=offline OFFLINE_BASE_DOMAIN=ml.example.local REGISTRY=registry.example.local REGISTRY_USER=<пользователь> REGISTRY_PASSWORD=<пароль> OFFLINE_DEPLOY_MODE=auto OFFLINE_DEVPI_MODE=auto
Режим auto автоматически определяет, выполняется первоначальная установка или обновление существующего стенда.
Внутренние сервисы
При использовании PostgreSQL, Redis, MinIO, Devpi и Keycloak из состава поставки задайте пароли в конфигурационном файле:
OFFLINE_REQUIRE_SECURE_CREDENTIALS=true OFFLINE_ALLOW_CREDENTIAL_ROTATION=false OFFLINE_INTERNAL_POSTGRES_PASSWORD=<пароль> OFFLINE_INTERNAL_REDIS_PASSWORD=<пароль> OFFLINE_INTERNAL_MINIO_ROOT_USER=<пользователь> OFFLINE_INTERNAL_MINIO_ROOT_PASSWORD=<пароль> OFFLINE_INTERNAL_DEVPI_PASSWORD=<пароль> OFFLINE_INTERNAL_KEYCLOAK_ADMIN_PASSWORD=<пароль> OFFLINE_INTERNAL_KEYCLOAK_CLIENT_SECRET=<секрет>
При обновлении установщик повторно использует значения существующих Kubernetes Secret. Если переданные значения отличаются, обновление останавливается до внесения согласованных изменений.
Первоначальный пользователь
Укажите имя первоначального пользователя:
OFFLINE_INITIAL_ML_USERNAME=user-ml
Пароль можно передать явно:
OFFLINE_INITIAL_ML_PASSWORD=<начальный пароль>
Если пароль не указан, он будет сгенерирован автоматически. Актуальное значение сохраняется в Kubernetes Secret keycloak-ml-bootstrap-user.
TLS
Если TLS завершается в Kubernetes:
OFFLINE_TLS_SECRET=ml-apps-tls
Если TLS завершается на внешнем балансировщике, настройте установку без Kubernetes TLS Secret в соответствии с сетевой схемой заказчика.
Registry для runtime-образов
Если исполняемые образы моделей должны публиковаться в отдельный registry, укажите:
EXECUTORS_IMAGE_REGISTRY=registry.example.local/ml/executors EXECUTORS_USER=<пользователь> EXECUTORS_PASSWORD=<пароль> Для registry без доверенного TLS: EXECUTORS_KANIKO_INSECURE_REGISTRY=true
Учётная запись должна иметь права pull и push в указанном репозитории.
Внешние PostgreSQL и S3
При использовании внешних сервисов укажите их адреса и учётные данные в конфигурации установки.
Перед запуском проверьте сетевую доступность, сертификаты и права пользователя.
Для обновления с внешним PostgreSQL также необходимо указать ссылку на созданную средствами заказчика резервную копию:
OFFLINE_EXTERNAL_PG_BACKUP_REFERENCE=<идентификатор или путь к резервной копии>Резервное копирование при обновлении
Рекомендуемые параметры:
OFFLINE_UPGRADE_BACKUP_MODE=required OFFLINE_BACKUP_DIR=./backups
Перед обновлением установщик создаёт резервные копии PostgreSQL и S3. Devpi при обновлении восстанавливается из snapshot, включённого в новую поставку.
Использование внешнего PostgreSQL
Если требуется использовать внешнюю БД PostgreSQL в качестве хранилища данных, необходимо заполнить:
OFFLINE_PG_HOST=postgres.company.local OFFLINE_PG_PORT=5432 OFFLINE_PG_USER=postgres OFFLINE_PG_PASSWORD=change-me OFFLINE_PG_POSTGRES_USER=postgres OFFLINE_PG_POSTGRES_PASSWORD=change-me
Если OFFLINE_PG_HOST задан, встроенная БД PostgreSQL будет отключена автоматически.
Использование внешнего S3/MinIO
Если требуется использовать внешнее файловое хранилище S3/MinIO, необходимо заполнить:
OFFLINE_S3_URL=http://minio.company.local:9000 OFFLINE_S3_ACCESS_KEY_ID=change-me OFFLINE_S3_SECRET_ACCESS_KEY=change-me OFFLINE_S3_REGION_NAME=us-east-1
Если OFFLINE_S3_URL задан, встроенное объектное хранилище будет отключено автоматически.
Использование отдельного registry для executor-образов
Если registry, доступный с хоста установки, отличается от registry, доступного из подов Kubernetes, необходимо задать:
EXECUTORS_IMAGE_REGISTRY=registry.internal.svc.cluster.local:5000 EXECUTORS_USER= EXECUTORS_PASSWORD= EXECUTORS_KANIKO_INSECURE_REGISTRY=true
Это требуется для runtime-сборки executor-образов внутри кластера.