Skip to content
This repository was archived by the owner on Nov 3, 2025. It is now read-only.

Commit c7f805e

Browse files
authored
Merge pull request #6 from Jinghao-coding/main
add chinese version readme
2 parents 372a8aa + f095eec commit c7f805e

File tree

2 files changed

+148
-0
lines changed

2 files changed

+148
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Storage server
22

3+
Chinese Version : [README_CN.md](README_CN.md)
4+
35
Crater is a Kubernetes-based GPU cluster management system providing a comprehensive solution for GPU resource orchestration.
46

57

README_CN.md

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
# Crater存储服务
2+
3+
Crater 是一个基于 Kubernetes 的 GPU 集群管理系统,提供 GPU 资源编排的全面解决方案。
4+
5+
## 💻 开发指南
6+
7+
在开始开发之前,请确保您的环境已安装以下工具:
8+
9+
- **Go**:推荐版本 `v1.25.0`
10+
📖 [Go 安装指南](https://go.dev/doc/install)
11+
12+
- **Kubectl**:推荐版本 `v1.22.1`
13+
📖 [Kubectl 安装指南](https://kubernetes.io/docs/tasks/tools/)
14+
15+
### 📐 代码风格与检查
16+
17+
本项目使用 [`golangci-lint`](https://golangci-lint.run/) 来强制执行 Go 代码约定和最佳实践。为避免手动运行,我们建议设置 Git 预提交钩子,以便在每次提交前自动检查代码。
18+
19+
安装后,您可能需要将 GOPATH 添加到系统 PATH 中,以便在终端中使用 golangci-lint。例如,在 Linux 上:
20+
21+
```bash
22+
# 检查您的 GOPATH
23+
go env GOPATH
24+
# /Users/your-username/go
25+
26+
# 将路径添加到 .bashrc 或 .zshrc
27+
export PATH="/Users/your-username/go/bin:$PATH"
28+
29+
# 重新加载 shell 并验证
30+
golangci-lint --version
31+
# golangci-lint has version 1.64.8
32+
```
33+
34+
#### 设置 Git 预提交钩子
35+
36+
`.githook/pre-commit` 脚本复制到您的 Git 钩子目录并使其可执行:
37+
38+
**Linux/macOS:**
39+
```bash
40+
cp .githook/pre-commit .git/hooks/pre-commit
41+
chmod +x .git/hooks/pre-commit
42+
```
43+
44+
Windows:
45+
46+
* 将脚本复制到 .git/hooks/pre-commit
47+
* 如果需要,将脚本中的 golangci-lint 替换为 golangci-lint.exe,或将其适配为 .bat 文件。
48+
49+
设置钩子后,golangci-lint 将在每次提交前自动对暂存文件运行。
50+
51+
#### 🛠️ 数据库代码生成
52+
本项目使用 GORM Gen 来生成数据库 CRUD 操作的样板代码。
53+
54+
生成脚本和文档可在以下位置找到:[ `gorm_gen`](./cmd/gorm-gen/README.md)
55+
56+
修改数据库模型或架构定义后,请重新生成代码,而 CI 流水线将自动进行数据库迁移。
57+
58+
### 项目配置
59+
安装依赖和插件:
60+
```bash
61+
go mod download
62+
```
63+
64+
## 🚀 运行代码
65+
66+
本项目支持两种运行方式:**本地开发****部署到 Kubernetes 集群**。我们 **推荐使用 Kubernetes 部署** 以获得完整功能和更接近生产的行为。
67+
68+
---
69+
70+
### 🧑‍💻 本地开发
71+
72+
> 适用于快速测试和开发阶段。
73+
74+
#### 📄 配置:
75+
76+
确保您有一个 [config.yaml](./etc/config.yaml) 文件,其中包含正确的数据库设置。
77+
78+
在根目录创建 `.env` 文件以自定义本地端口。此文件被 Git 忽略:
79+
80+
```env
81+
PORT=xxxx
82+
ROOTDIR="/crater"
83+
```
84+
85+
#### 📁 目录设置:
86+
87+
**在你熟悉的目录下创建一个名为 `crater`(或者其他名字) 的文件夹,以模拟文件处理行为。**
88+
89+
**或者,您可以修改 .env 文件中的 `ROOTDIR` 并将其用作测试的根目录。**
90+
91+
```bash
92+
mkdir crater
93+
```
94+
95+
此目录将作为文件处理的根目录。
96+
97+
#### 🚀 运行应用程序:
98+
99+
```bash
100+
make run
101+
```
102+
103+
服务将启动并默认监听 `localhost:port`
104+
105+
---
106+
107+
### ☸️ 部署到 Kubernetes
108+
109+
#### ✅ 先决条件:
110+
111+
- Docker
112+
- 访问 Kubernetes 集群(`kubectl`
113+
- 已创建名为 `crater-rw-storage` 的 PVC(用于持久文件存储)
114+
115+
#### 📦 构建并推送 Docker 镜像:
116+
117+
```bash
118+
docker build -t your-registry/crater-webdav:latest .
119+
docker push your-registry/crater-webdav:latest
120+
```
121+
122+
> `your-registry` 替换为您的实际容器注册表。
123+
124+
#### 🚀 部署到 Kubernetes:
125+
126+
确保当前目录中存在以下文件:
127+
128+
- `Dockerfile`
129+
- `deployment.yaml`
130+
- `service.yaml`(如果适用)
131+
132+
您可以在 https://github.com/raids-lab/crater/tree/main/charts/crater/templates/storage-server 找到这些文件
133+
134+
应用清单:
135+
136+
```bash
137+
kubectl apply -f deployment.yaml
138+
kubectl apply -f service.yaml
139+
```
140+
141+
> 确保 `deployment.yaml` 正确引用镜像并挂载 PVC `crater-rw-storage`
142+
143+
### 🚀 快速部署
144+
要在生产环境中部署 Crater 项目,我们提供了一个 Helm Chart,可在 [Crater Helm Chart](https://github.com/raids-lab/crater) 获取。
145+
146+
请参考主文档以获取

0 commit comments

Comments
 (0)