В этой статье разберу установку с минимальными усилиями с использованием 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. Хотя этот случай даже описан на официальном сайте, я решил проблему проще, переустанавливая приложение с полной очисткой несколько раз, до того момента, когда все миграции наконец прошли и все поды успешно запустились.