Cube Studio项目中MinIO单节点StatefulSet部署详解

Cube Studio项目中MinIO单节点StatefulSet部署详解

cube-studio cube studio开源云原生一站式机器学习/深度学习/大模型AI平台,支持sso登录,大数据平台对接,notebook在线开发,拖拉拽任务流pipeline编排,多机多卡分布式训练,超参搜索,推理服务VGPU,边缘计算,标注平台,自动化标注,大模型微调,vllm大模型推理,llmops,私有知识库,AI模型应用商店,支持模型一键开发/推理/微调,支持国产cpu/gpu/npu芯片,支持RDMA,支持pytorch/tf/mxnet/deepspeed/paddle/colossalai/horovod/spark/ray/volcano分布式,deepseek微调推理 cube-studio 项目地址: https://gitcode.com/gh_mirrors/cub/cube-studio

概述

在Cube Studio项目中,MinIO作为高性能的对象存储服务,为整个平台提供了可靠的存储解决方案。本文将深入解析项目中使用的MinIO单节点StatefulSet部署配置,帮助开发者理解其设计原理和关键配置项。

MinIO在Cube Studio中的作用

MinIO在Cube Studio中承担着重要角色,主要功能包括:

  • 存储机器学习模型和数据集
  • 提供训练过程中的中间结果存储
  • 作为工作流执行时的持久化存储后端
  • 存储系统日志和监控数据

配置解析

StatefulSet核心配置

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: minio
  namespace: infra

这部分定义了StatefulSet的基本信息,表明这是一个在infra命名空间下名为minio的StatefulSet资源。StatefulSet相比Deployment更适合有状态应用,能保证Pod的持久化存储和网络标识。

副本与选择器

replicas: 1
selector:
  matchLabels:
    app: minio

这里配置了单副本模式,适合开发和测试环境。生产环境建议配置多副本以实现高可用。选择器确保StatefulSet能正确管理带有app=minio标签的Pod。

Pod模板配置

template:
  metadata:
    labels:
      app: minio
  spec:
    terminationGracePeriodSeconds: 20

Pod模板定义了Pod的基本配置,包括标签和优雅终止时间(20秒)。这个时间足够MinIO完成正在进行的操作并安全关闭。

容器配置

containers:
- name: minio
  env:
  - name: MINIO_ROOT_USER
    value: "minio"
  - name: MINIO_ROOT_PASSWORD
    value: "minio2022"
  - name: MINIO_PROMETHEUS_AUTH_TYPE
    value: public

环境变量配置了MinIO的root用户凭证和Prometheus监控认证类型。生产环境中应使用Secret来管理敏感信息而非明文。

镜像与启动参数

image: minio/minio:RELEASE.2022-10-08T20-11-00Z
args:
- server
- /data
- --console-address
- ":9001"

指定了MinIO的具体版本和启动参数。--console-address ":9001"启用了MinIO控制台服务,端口为9001。

资源限制

resources:
  limits:
    cpu: "6"
    memory: 8192Mi
  requests:
    cpu: 10m
    memory: 300Mi

配置了资源请求和限制,确保MinIO有足够资源运行,同时防止资源耗尽影响集群其他组件。

存储配置

volumeMounts:
- name: "data"
  mountPath: "/data"
  
volumeClaimTemplates:
- metadata:
    name: data
  spec:
    accessModes: [ "ReadWriteOnce" ]
    resources:
      requests:
        storage: 2000Gi
    storageClassName: local-minio

定义了2TB的持久化存储,使用local-minio存储类。StatefulSet的volumeClaimTemplates会为每个Pod动态创建PVC。

健康检查

livenessProbe:
  httpGet:
    path: "/minio/health/live"
    port: 9000
  initialDelaySeconds: 120
  periodSeconds: 20

配置了存活探针,确保MinIO服务健康。初始延迟120秒给MinIO足够启动时间,之后每20秒检查一次。

服务配置

apiVersion: v1
kind: Service
metadata:
  name: minio-service
  namespace: infra
spec:
  type: ClusterIP
  ports:
    - port: 9000
      targetPort: 9000
      protocol: TCP
  selector:
    app: minio

创建了ClusterIP类型的服务,使集群内其他组件可以通过minio-service:9000访问MinIO。

apiVersion: v1
kind: Service
metadata:
  name: minio
  namespace: infra
  labels:
    app: minio
spec:
  clusterIP: None
  ports:
    - port: 9000
      name: minio
  selector:
    app: minio

这个Headless服务用于StatefulSet的DNS解析,每个Pod会有独立的DNS记录。

部署建议

  1. 生产环境应考虑使用多节点部署模式提高可用性
  2. 敏感信息应使用Kubernetes Secret管理
  3. 根据实际负载调整资源限制
  4. 定期备份重要数据
  5. 监控存储使用情况,及时扩容

总结

Cube Studio中的MinIO单节点StatefulSet配置提供了一个可靠的对象存储解决方案,通过合理的资源分配、健康检查和持久化存储配置,确保了服务的稳定运行。理解这些配置有助于开发者根据实际需求进行调整和优化。

cube-studio cube studio开源云原生一站式机器学习/深度学习/大模型AI平台,支持sso登录,大数据平台对接,notebook在线开发,拖拉拽任务流pipeline编排,多机多卡分布式训练,超参搜索,推理服务VGPU,边缘计算,标注平台,自动化标注,大模型微调,vllm大模型推理,llmops,私有知识库,AI模型应用商店,支持模型一键开发/推理/微调,支持国产cpu/gpu/npu芯片,支持RDMA,支持pytorch/tf/mxnet/deepspeed/paddle/colossalai/horovod/spark/ray/volcano分布式,deepseek微调推理 cube-studio 项目地址: https://gitcode.com/gh_mirrors/cub/cube-studio

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郦琳凤Joyce

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值