在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集群可以无限制访问互联网,请按照以下步骤操作。
- 确认您满足所需的软件先决条件并查看容量规划指南。
- 准备Kubernetes集群.
- 添加Helm图表仓库。
- (可选) 设置持久化存储。
- (可选) 配置 ingress。
- (可选) 配置 values.yaml。
- (可选) 为PostgreSQL设置TLS
- 使用Helm在您的Kubernetes集群上安装Label Studio。
如果您的Kubernetes集群需要通过代理访问互联网,或者处于与互联网隔离的环境,请参阅如何在没有公共互联网访问的情况下安装Label Studio。
必备软件环境要求
- Kubernetes 和 kubectl 版本 1.17 或更高
- Helm 版本 3.6.3 或更高
该图表已经过测试,确认可与NGINX Ingress Controller和cert-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。
- 从命令行执行:
helm repo add heartex https://charts.heartex.com/ helm repo update heartex
- 如果需要,可以检查可用版本:
helm search repo heartex/label-studio
可选:为PostgreSQL设置TLS
要配置Label Studio使用TLS与PostgreSQL建立终端客户端连接,请执行以下操作:
为您的PostgreSQL实例启用TLS,并保存根TLS证书、客户端证书及其密钥以供后续步骤使用。
使用您的证书创建Kubernetes密钥,将
、
和
替换为您的证书路径:kubectl create secret generic
--from-file=ca.crt= --from-file=client.crt= --from-file=client.key= 使用新创建的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"
- 使用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发布版本:
识别最新Label Studio版本的
: helm list
重启Label Studio应用:
kubectl rollout restart deployment/
-ls-app
使用 Helm 升级 Label Studio
要使用Helm升级Label Studio,请执行以下操作。
- 确定Label Studio的最新标签版本,并在您的
ls-values.yaml
文件中添加/替换以下内容:global: image: tag: "20210914.154442-d2d1935"
- 更新values文件后,获取Helm图表的最新更新:
helm repo update heartex
- 从命令行运行以下命令以升级您的部署:
如果需要,您可以从命令行指定版本: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>