微搭私有部署内置 CI/CD 服务配 置指南
本文档将指导您在微搭私有部署集群版中配置和启用内置 CI/CD 服务。
功能概述
微搭私有部署提供了内置的 CI/CD 服务,支持应用的自动构建、测试和部署流程。
版本支持
- v1.4.10 及以上版本:CI/CD 服务支持自动安装,无需单独部署
- v1.4.10 以下版本:需要先获取新版本的升级包或命令行工具
wedaCli进行手动安装
服务类型说明
微搭提供两种 CI/CD 部署方式:
- 内置 CI/CD(internalBuild):部署在 Kubernetes 集群内部(存储路径占用磁盘空间要求至少: 100G)
- 外部 CI/CD(build):部署在集群外部的独立服务器上
两种方式必须至少启用一种,同时启用时优先使用内置 CI/CD 服务。
前置条件和要求
节点规划
为确保 CI/CD 服务的稳定运行,建议:
- 专用节点部署:为 CI/CD 服务分配专用的 Kubernetes 节点
- 资源隔离:避免与其他微搭服务部署在同一节点上
- 数据持久化:配置专用的数据存储目录
关键配置要求
重要提示
以下配置必须正确设置,否则将导致数据丢失:
- **节点选择器(nodeSelector)和数据目录(hostPath)**必须在同一个节点上
- 如果不设置节点选择器和数据目录,CI/CD 数据无法持久化,构建历史记录将丢失
- 数据目录建议使用独立的大容量磁盘, 避免系统盘空间不足
配置步骤
步骤 1:设置节点标签
首先需要为专用的 CI/CD 节点设置标签,用于节点选择器识别。
kubectl label nodes <node-name> weda-gitness=service
参数说明:
<node-name>:替换为实际的 Kubernetes 节点名称weda-gitness=service:CI/CD 服务的节点选择器标签
查看节点名称:
kubectl get nodes
步骤 2:创建数据持久化目录
在设置了标签的节点上创建 CI/CD 数据存储目录:
mkdir -p /data1/gitness
目录规划建议:
生产环境注意事项
- 示例目录
/data1/gitness可根据实际情况调整 - 强烈建议将数据目录放在独立的大容量磁盘上(至少100G)
- 避免使用系统盘,防止磁盘空间不足导致服务异常
- 确保目录具有适当的读写权限
推荐的目录结构:
# 生产环境推荐配置
/data/cicd/gitness # 使用独立数据盘
/opt/weda/cicd/data # 或使用专用分区(存储路径占用磁盘空间要求至少: 100G)
步骤 3:配置 CI/CD 服务
在微搭的配置文件中添加以下 CI/CD 服务配置:
internalBuild:
# 启用内置 CI/CD 服务
# true: 开启并自动部署内置 CI/CD 服务
# false: 不开启内置 CI/CD 服务
enabled: true
# 节点选择器配置
# 指定 CI/CD 服务部署的目标节点
nodeSelector:
weda-gitness: service
# 数据持久化目录
# 必须与 nodeSelector 指定的节点上的实际目录路径一致
hostPath: "/data1/gitness"
配置参数详解
| 配置项 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
enabled | boolean | 是 | 是否启用内置 CI/CD 服务 | true / false |
nodeSelector | object | 推荐 | 节点选择器标签,用于指定部署节点 | weda-gitness: service |
hostPath | string | 推荐 | 数据持久化目录的绝对路径 | /data1/gitness |
配置策略说明
部署策略
必须启用的服务:
internalBuild(内置 CI/CD)和build(外部 CI/CD)必须至少启用一个- 同时启用时,系统优先使用内置 CI/CD 服务
节点选择器策略:
- 设置
nodeSelector:CI/CD 服务将部署到指定标签的节点 - 不设置
nodeSelector:系统根据资源情况自动选择合适的节点
数据持久化策略:
- 设置
hostPath:CI/CD 数据将持久化保存,可查看构建历史 - 不设置
hostPath:数据不持久化,重启后构建历史丢失
部署和启动
步骤 4:应用配置并启动服务
完成上述配置后,执行以下操作启动 CI/CD 服务:
- 保存配置文件:确保所有配置项已正确填写
- 应用配置:按照 安装或重启服务 文档执行部署操作
验证部署结果
部署完成后,可以通过以下命令验证 CI/CD 服务状态:
# 查看 CI/CD 相关 Pod 状态
kubectl get pods -n software | grep gitness
# 查看服务日志
kubectl logs -f <gitness-pod-name> -n software -c gitness
# 验证数据目录
ls -la /data1/gitness