Установка Helm чартов#
Примеры Helm чартов для каждого сервиса расположены в директории extras/helms/
.
Настройка Helm чартов#
Helm чарты из комплекта поставки не подходят для полноценной работы в продуктивном контуре. Необходимо настроить чарты в соответствии со своей бизнес логикой перед их установкой.
Перейдите в директорию с чартами:
cd /var/lib/luna/luna_v.5.67.0/extras/helms/
Настройте в файлах luna-<service-name>/values.yaml
все необходимые параметры, особенно обращая внимание на:
- секцию
resources
для задания ресурсов (например, CPU и память) для контейнеров сервиса - секцию
ingress
для настройки маршрутизации входящего трафика к сервису - параметр
pullSecrets
в секцииimage
для указания секрета, который будет использоваться при извлечении образа контейнера из реестра (см. "Создание секрета для авторизации в реестре Docker" в разделе "Дополнительная информация").
Примечание. Рекомендуется настроить аннотацию nginx.ingress.kubernetes.io/proxy-body-size
к сервису API (или к любому другому сервису, к которому отправляются запросы с изображениями) в зависимости от требований к размеру передаваемых изображений. В Helm чарте сервиса API дан пример использования данной аннотации.
Эти параметры играют важную роль в обеспечении производительности и доступности вашего приложения в продуктивной среде.
Настройка GPU для Remote SDK#
Примечание. Пропустите данный раздел если не собираетесь использовать GPU.
Использование GPU для сервиса Remote SDK включается с помощью передачи соответствующего ключа в секции resources
в файле values.yaml
соответствующего Helm чарта.
Например, можно настроить доступ к одному графическому процессору следующим образом:
resources:
limits:
cpu: 5000m
memory: 10Gi
nvidia.com/gpu: 1
requests:
cpu: 5000m
memory: 10Gi
nvidia.com/gpu: 1
Примечание. Также для включения эстимаций/детекций на GPU необходимо задать необходимые настройки (см. "Настройки GPU"). При необходимости можно использовать переменную EXTEND_CMD
для передачи тегированных настроек.
env:
- name: EXTEND_CMD
value: " --LUNA_REMOTE_SDK_RUNTIME_SETTINGS gpu"
Настройка доступа для Lambda#
Примечание. Пропустите данный раздел если не собираетесь использовать сервис Lambda.
Для корректной работы сервиса Lambda необходимо правильно настроить доступ к ресурсам Kubernetes, чтобы обеспечить безопасность и эффективное управление сервисом. Это можно сделать, например, путем определения ролей и привязок ролей с помощью механизма управления доступом на основе ролей (RBAC).
Приведенный ниже пример показывает, как настроить доступы с использованием RBAC в Kubernetes для сервиса Lambda:
- Определите объект типа
ServiceAccount
, который представляет собой идентификатор, используемый сервисом для взаимодействия с Kubernetes API сервером:
apiVersion: v1
kind: ServiceAccount
metadata:
name: lambda-user
- Определите тип объекта
Role
, который определяет набор разрешений для ресурсов, с которыми ваш сервис будет работать:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: production
name: lambda-admin-role
rules:
- apiGroups: ["", "apps", "networking.k8s.io"]
resources: ["deployments", "pods", "pods/log", "pods/status", "services", "services/proxy", "ingresses"]
verbs: ["get", "watch", "list", "create", "delete", "patch"]
Здесь services/proxy
означает возможность отправки запросов к ресурсу /lambdas/\{lambda_id\}/proxy
сервиса Lambda.
- Определите тип объекта
RoleBinding
, который связывает роль с созданным типомServiceAccount
, определяя, какие ресурсы и операции доступны сервису Lambda:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: admin-lambda
namespace: production
subjects:
- kind: ServiceAccount
name: lambda-user
namespace: production
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: lambda-admin-role
Запуск установки Helm чартов#
Перейдите в директорию с Helm чартами.
cd /var/lib/luna/luna_v.5.67.0/extras/helms
Запустите установку Helm чартов для необходимых сервисов с помощью следующих команд:
helm install --wait --timeout 10m luna-configurator ./luna-configurator
helm install --wait --timeout 10m luna-image-store ./luna-image-store
helm install --wait --timeout 10m luna-licenses ./luna-licenses
helm install --wait --timeout 10m luna-faces ./luna-faces
helm install --wait --timeout 10m luna-events ./luna-events
helm install --wait --timeout 10m luna-python-matcher ./luna-python-matcher
helm install --wait --timeout 10m luna-remote-sdk ./luna-remote-sdk
helm install --wait --timeout 10m luna-handlers ./luna-handlers
helm install --wait --timeout 10m luna-sender ./luna-sender
helm install --wait --timeout 10m luna-tasks-worker ./luna-tasks-worker
helm install --wait --timeout 10m luna-tasks ./luna-tasks
helm install --wait --timeout 10m luna-accounts ./luna-accounts
helm install --wait --timeout 10m luna-lambda ./luna-lambda
helm install --wait --timeout 10m luna-api ./luna-api
helm install --wait --timeout 10m luna-admin ./luna-admin
helm install --wait --timeout 10m luna-backport3 ./luna-backport3
helm install --wait --timeout 10m luna-backport4 ./luna-backport4
Перед запуском сервисов UI 4 и UI 3 необходимо выполнить дополнительные действия в Helm чартах:
- актуализировать параметр
LUNA_API_URL
для обоих Helm чартов, который является внутренним адресом Backport 3 и Backport 4 соответственно - актуализировать параметр
BASIC_AUTH
для Helm чарта UI 4, указав данные авторизации для аккаунта типа user в форматеlogin:password
, закодированным в Base64
Необходимо предварительно создать аккаунт типа "user" с помощью запроса "create account" к сервису API или с помощью сервиса Admin.
Запустите установку Helm чартов UI 4 и UI 3 с помощью следующих команд:
helm install --wait --timeout 10m luna3-ui ./luna3-ui
helm install --wait --timeout 10m luna4-ui ./luna4-ui
После установки Helm чартов рекомендуется провести тщательное тестирование LUNA PLATFORM в среде, которая соответствует вашим требованиям по производительности и безопасности.