AI Установка Langfuse в Kubernetes

AI

Редактор
Регистрация
23 Август 2023
Сообщения
3 603
Лучшие ответы
0
Реакции
0
Баллы
243
Offline
#1
В этой статье разберу установку с минимальными усилиями с использованием Helm и локального однонодового кластера Kubeadm.

Создаём кластер:



Добавляем и обновляем репо с Langfuse:

helm repo add langfuse https://langfuse.github.io/langfuse-k8s
helm repo update

Создаём файл values.override.yaml для переопределения настроек helm-приложения под свои нужды и возможности. Можно не добавлять секцию additionalEnv как в примере, но тогда вручную придётся добавлять пользователя и создавать новый проект. Мне подошли такие значения:

langfuse:
salt:
value: "salt"
nextauth:
secret:
value: "nextauth-secret"
resources:
limits:
cpu: "1"
memory: "2Gi"
requests:
cpu: "1"
memory: "2Gi"
web:
pod:
additionalEnv:
- name: LANGFUSE_INIT_ORG_ID
value: "1"
- name: LANGFUSE_INIT_ORG_NAME
value: "example"
- name: LANGFUSE_INIT_PROJECT_ID
value: "1"
- name: LANGFUSE_INIT_PROJECT_NAME
value: "example proj"
- name: LANGFUSE_INIT_PROJECT_PUBLIC_KEY
value: pk-lf-3a1ae631-eb38-4b14-ae81-c0adfe517cab
- name: LANGFUSE_INIT_PROJECT_SECRET_KEY
value: sk-lf-a4279b11-2c10-4bad-b9a2-a6e967360869
- name: LANGFUSE_INIT_USER_EMAIL
value: admin@example.com
- name: LANGFUSE_INIT_USER_NAME
value: admin
- name: LANGFUSE_INIT_USER_PASSWORD
value: password

postgresql:
auth:
username: langfuse
password: "password"

clickhouse:
auth:
password: "password"
resources:
limits:
cpu: "1"
memory: "2Gi"
requests:
cpu: "1"
memory: "2Gi"

redis:
auth:
password: "password"
primary:
resources:
limits:
cpu: "0.5"
memory: "1Gi"
requests:
cpu: "0.5"
memory: "1Gi"

s3:
auth:
rootPassword: "password"
resources:
limits:
cpu: "1"
memory: "1Gi"
requests:
cpu: "1"
memory: "1Gi"

zookeeper:
resources:
limits:
cpu: "1"
memory: "2Gi"
requests:
cpu: "1"
memory: "2Gi"

Выполняем команду установки из папки, где находится yaml-файл:

helm install langfuse langfuse/langfuse -f values.override.yaml

Далее ждём... пока все поды запустятся



Для доступа к ui-интерфейсу пробросим порт:

kubectl port-forward svc/langfuse-web 3333:3000

Логинимся с заранее установленными кредами в переменных LANGFUSE_INIT_USER_EMAIL и LANGFUSE_INIT_USER_PASSWORD:



Для удаления приложения:

helm uninstall langfuse

Важно! После удаления ресурсы Persistent Volume Claims (PVCs) остаются не тронутыми. Поэтому, если заново установить langfuse, в интерфейсе увидим, что данные которые были до удаления никуда не делись.

Для полной очистки выполним дополнительно команду:

kubectl delete pvc -l "app.kubernetes.io/instance=langfuse"

Кстати, при развертывании Langfuse в боевом k8s, я столкнулся с ошибкой запуска компонента langfuse-web, связанной с миграциями в БД ClickHouse: error: Dirty database version XX. Fix and force version. Хотя этот случай даже описан на официальном сайте, я решил проблему проще, переустанавливая приложение с полной очисткой несколько раз, до того момента, когда все миграции наконец прошли и все поды успешно запустились.
 
Яндекс.Метрика Рейтинг@Mail.ru
Сверху Снизу