当前位置: 首页 > news >正文

在 Kubernetes 上部署 Label Studio

1. 概述

Label Studio 是一款开源的数据标注工具,支持多种标注任务,如文本标注、图像标注、音频标注等

2. 前提条件

在开始之前,请确保你具备以下条件:

  • 一个 Kubernetes 集群(版本 1.18 或更高)。

  • 安装了 Helm 包管理工具。

  • 可访问并配置 S3 或 Ceph 存储(用于持久化文件存储)。

  • 已配置外部数据库(如 PostgreSQL)。

  • 配置了外部 Redis 实例(可选,作为缓存和任务队列使用)。

3. 部署步骤

3.1 添加helm chart仓库

helm repo add heartex https://charts.heartex.com/
helm repo update heartex
helm search repo heartex/label-studio

3.2 准备 values.yaml 配置文件

查看Chart 中定义的所有Values

helm show values heartex/label-studio > value.yaml

以下是一个 values.yaml 配置文件示例,针对 Kubernetes 部署设置了 S3 存储、PostgreSQL 数据库和 Redis 缓存:

global:image:registry: "docker.io"repository: "heartexlabs/label-studio"pullPolicy: "IfNotPresent"tag: ""pgConfig:host: "10.x.x.x"port: 5432dbName: "label_studio_prod"userName: "label_studio_prod"password:secretName: "pgsql-passwd"secretKey: "password"ssl:pgSslMode: ""pgSslSecretName: ""pgSslRootCertSecretKey: ""pgSslCertSecretKey: ""pgSslKeySecretKey: ""redisConfig:host: "redis-labelstudio.example.com"password:secretName: "redis-passwd"secretKey: "password"ssl:redisSslCertReqs: ""redisSslSecretName: ""redisSslCaCertsSecretKey: ""redisSslCertFileSecretKey: ""redisSslKeyFileSecretKey: ""persistence:enabled: truetype: s3config:s3:accessKey: "your-access-key"secretKey: "your-secret-key"region: "your-region"bucket: "your-bucket"folder: ""  # optionalurlExpirationSecs: "3600"  # 签名 URL 的过期时间endpointUrl: "https://your-s3-endpoint"
  • pgConfig:配置 PostgreSQL 数据库连接信息。

  • redisConfig:配置 Redis 实例的连接信息(如果使用)。

  • persistence:配置 S3 或 Ceph 对象存储,用于存储上传的文件。

3.3 创建redis、postgresql密码对应的secret

kubectl -n kube-system create secret generic redis-passwd --from-literal=password='redis-passwd'kubectl -n kube-system create secret generic pgsql-passwd --from-literal=password='pgsql-passwd'

3.4 使用 Helm 部署 Label Studio

  1. 使用配置文件 values.yaml 安装 Label Studio:

    helm -n kube-system install  heartex/label-studio  -f value.yaml  --generate-name

    该命令将在 kube-system 命名空间中部署 Label Studio。


4. 访问 Label Studio

  1. 创建一个 Ingress 资源:如果你希望通过域名访问 Label Studio,配置 Ingress。

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:name: labelstudio-ingressnamespace: kube-systemannotations:nginx.ingress.kubernetes.io/rewrite-target: /nginx.ingress.kubernetes.io/proxy-body-size: "50m"nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
    spec:ingressClassName: nginxrules:- host: labelstudio.example.comhttp:paths:- path: /pathType: Prefixbackend:service:name: label-studio-1753688001-ls-appport:number: 80
  2. 端口转发:如果不使用 Ingress,可以通过 kubectl 进行端口转发,临时访问 Web UI。

    kubectl port-forward --address 0.0.0.0  -n kube-system label-studio-1753688001-ls-app-6c4d84b449-jk2cm 9090:8085

    然后通过浏览器访问 http://localhost:8080

5.更新部署

#helm -n kube-system list
label-studio-1753688001	kube-system	10      	2025-07-30 13:55:01.925579305 +0800 CST	deployed	label-studio-1.10.0	1.20.0#helm -n kube-system upgrade label-studio-1753688001 heartex/label-studio -f value.yaml

http://www.lryc.cn/news/605061.html

相关文章:

  • Apache Kafka核心组件详解
  • 当人生低谷无人帮助时,如何独自奏响人生乐章
  • 借助 Wisdom SSH AI 助手构建 Linux 容器化开发流水线
  • 虚实共生的智能革命:元宇宙、物联网与 AI 融合生态全景图谱
  • Vue 3 入门教程 2- Vue 组件基础与模板语法
  • 推客系统开发全流程解析:从概念到落地的完整指南
  • 论文Review LSLAM BALM | 经典激光SLAM方案!港大MARS出品!RAL2021 | 激光BA优化
  • RocketMQ 核心特性解析及与 Kafka区别
  • Spring AI 海运管理应用第2部分
  • Centos 7.9安装部署cobbler-自动化部署服务器完整教程
  • 数据结构第3问:什么是线性表?
  • 从0开始学linux韦东山教程Linux驱动入门实验班(7)
  • 不止 “听懂”,更能 “感知”!移远通信全新AI 音频模组 重新定义智能家居“听觉”逻辑
  • 【Datawhale AI夏令营】科大讯飞AI大赛(大模型技术)/夏令营:让AI理解列车排期表(Task3)
  • 如何将DICOM文件制作成在线云胶片
  • 一句话指令实现“2D转3D”、“图片提取线稿”
  • Kong API Gateway深度解析:插件系统与微服务架构的技术基石
  • Python爬虫05_Requests肯德基餐厅位置爬取
  • 企业微信API接口发消息实战:从0到1的技术突破之旅
  • 新注册企业信息查询“数据大集网”:驱动企业增长的源头活水
  • 笔试——Day23
  • C++ 项目 QML QtQuick.Controls“ is not installed
  • 【C语言】深度剖析指针(二):指针与数组,字符,函数的深度关联
  • 基于 Amazon Bedrock 与 Anthropic Claude 3 智能文档处理方案:从扫描件提取到数据入库全流程实践
  • C++入门基础 1
  • 【MySQL 数据库】MySQL索引特性(二)页目录(B和B+树)(非)聚簇索引 索引操作
  • 293F细胞是什么?
  • Service Mesh
  • 使用HaiSnap做了一款取件码App(一键生成)
  • 修改Windows鼠标滚轮方向