指南 3个标注团队操作手册:提升标注速度与质量

在Kubernetes上部署Label Studio

使用 Helm 3 在 Kubernetes 集群上部署 Label Studio。您可以使用此 Helm 图表来设置 Label Studio,以便部署到 Kubernetes 集群上,并安装、升级和管理该应用程序。

您的Kubernetes集群可以是自托管的,也可以安装在诸如Amazon EKS等平台上。有关在Amazon EKS上部署应用程序的更多信息,请参阅亚马逊教程使用Amazon Elastic Kubernetes服务部署Kubernetes应用程序

警告

要安装Label Studio企业版,请参阅在Kubernetes上部署Label Studio企业版。本页面仅适用于Label Studio社区版本。

在Kubernetes上安装Label Studio

如果您想在Kubernetes上安装Label Studio,并且您的K8s集群可以无限制访问互联网,请按照以下步骤操作。

  1. 确认您满足所需的软件先决条件并查看容量规划指南。
  2. 准备Kubernetes集群.
  3. 添加Helm图表仓库
  4. (可选) 设置持久化存储
  5. (可选) 配置 ingress
  6. (可选) 配置 values.yaml
  7. (可选) 为PostgreSQL设置TLS
  8. 使用Helm在您的Kubernetes集群上安装Label Studio

如果您的Kubernetes集群需要通过代理访问互联网,或者处于与互联网隔离的环境,请参阅如何在没有公共互联网访问的情况下安装Label Studio

必备软件环境要求

  • Kubernetes 和 kubectl 版本 1.17 或更高
  • Helm 版本 3.6.3 或更高

该图表已经过测试,确认可与NGINX Ingress Controllercert-manager配合使用。有关Label Studio的入口设置详情,请参阅Set up an ingress controller for Label Studio Kubernetes deployments

您的Kubernetes集群可以是自托管的,也可以安装在诸如Amazon EKS等平台上。

容量规划

要规划您的Kubernetes集群容量,请参考以下指南。

Label Studio 有以下默认配置用于资源请求、资源限制和副本数量:

app:
  replicas: 1
  resources:
    requests:
      memory: 1024Mi
      cpu: 1000m
    limits:
      memory: 6144Mi
      cpu: 4000m

在修改这些值之前,请先熟悉Kubernetes文档中的Pod和容器资源管理指南。

如果您选择修改这些默认设置,请考虑以下事项:

针对这种情况 调整此项
More than 10 concurrent annotators Adjust the requests and limits for resources in the app pod
Increase fault tolerance Increase the number of replicas of app pod
生产环境部署(副本数) 副本数应等于或大于Kubernetes集群中的可用区数量

准备Kubernetes集群

在安装Label Studio之前,请使用kubectl准备好Kubernetes集群。

添加Helm图表仓库

添加Helm图表仓库以便轻松安装和更新Label Studio。

  1. 从命令行执行:
    helm repo add heartex https://charts.heartex.com/
    helm repo update heartex
  2. 如果需要,可以检查可用版本:
    helm search repo heartex/label-studio

可选:为PostgreSQL设置TLS

要配置Label Studio使用TLS与PostgreSQL建立终端客户端连接,请执行以下操作:

  1. 为您的PostgreSQL实例启用TLS,并保存根TLS证书、客户端证书及其密钥以供后续步骤使用。

  2. 使用您的证书创建Kubernetes密钥,将替换为您的证书路径:

    kubectl create secret generic  --from-file=ca.crt= --from-file=client.crt= --from-file=client.key=
  3. 使用新创建的Kubernetes密钥更新您的ls-values.yaml文件:

备注

如果POSTGRE_SSL_MODE: verify-ca,将通过检查服务器证书链直至客户端存储的根证书来验证服务器。如果POSTGRE_SSL_MODE: verify-full,将验证服务器主机名以确保其与服务器证书中存储的名称匹配。若服务器证书无法验证,SSL连接将失败。在大多数对安全性要求较高的环境中,建议使用verify-full

global:
  pgConfig:
    ssl:
      pgSslMode: "verify-full"
      pgSslSecretName: "<YOUR_SECRET_NAME>"
      pgSslRootCertSecretKey: "ca.crt"
      pgSslCertSecretKey: "client.crt"
      pgSslKeySecretKey: "client.key"
  1. 使用Helm安装或升级Label Studio。

使用Helm在您的Kubernetes集群上安装Label Studio

使用Helm在您的Kubernetes集群上安装Label Studio。提供您的自定义资源定义YAML文件。通过helm install命令的--set参数,为Label Studio安装指定需要设置的环境变量。

备注

如果您正在部署到生产环境,应该设置环境变量 SSRF_PROTECTION_ENABLED: true。详情请参阅Secure Label Studio

从命令行运行以下命令:

helm install <RELEASE_NAME> heartex/label-studio -f ls-values.yaml

安装完成后,检查Kubernetes pod的创建状态:

kubectl get pods

使用 Helm 重启 Label Studio

通过命令行执行以下操作来重启您的Helm发布版本:

  1. 识别最新Label Studio版本的

    helm list
  2. 重启Label Studio应用:

    kubectl rollout restart deployment/-ls-app

使用 Helm 升级 Label Studio

要使用Helm升级Label Studio,请执行以下操作。

  1. 确定Label Studio的最新标签版本,并在您的ls-values.yaml文件中添加/替换以下内容:
    global:
      image:
        tag: "20210914.154442-d2d1935"
  2. 更新values文件后,获取Helm图表的最新更新:
    helm repo update heartex
  3. 从命令行运行以下命令以升级您的部署:
    helm upgrade  heartex/label-studio -f ls-values.yaml
    如果需要,您可以从命令行指定版本:
    helm upgrade  heartex/label-studio -f ls-values.yaml --set global.image.tag=20210914.154442-d2d1935
    此命令会覆盖ls-values.yaml中存储的标签值。升级或重新部署实例时,必须更新标签值以避免版本降级。

使用 Helm 卸载 Label Studio

要使用Helm卸载Label Studio,请删除配置。

从命令行运行以下命令:

helm delete <RELEASE_NAME>