55 lines
1.3 KiB
Markdown
55 lines
1.3 KiB
Markdown
# PocketBase Helm Chart 设计文档
|
||
|
||
## 概述
|
||
|
||
使用 Helm Chart 管理多个 PocketBase 实例,每个实例对应独立的域名。
|
||
|
||
使用k3s集群部署,Traefik作为Ingress控制器,SQLite作为本地存储。
|
||
|
||
## 需求
|
||
|
||
- 批量部署多个 PocketBase Pod
|
||
- 每个实例绑定独立域名:`{id}.pb.xiongxiao.me`
|
||
- 使用 Traefik 作为反向代理和入口控制器
|
||
- 通过 Helm 实现统一配置管理
|
||
- 使用 SQLite 本地存储(默认)
|
||
|
||
## 架构
|
||
|
||
```
|
||
Traefik Ingress
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────┐
|
||
│ Helm Release (values.id) │
|
||
│ ├── pocketbase-{id} Service │
|
||
│ │ │ │
|
||
│ │ ▼ │
|
||
│ │ pocketbase-{id} Pod │
|
||
│ │ │ │
|
||
│ └─────────┼──→ {id}.pb.xiongxiao.me
|
||
│
|
||
▼
|
||
SQLite (本地存储)
|
||
```
|
||
|
||
## 配置方式
|
||
|
||
通过 `values.yaml` 配置实例列表:
|
||
|
||
```yaml
|
||
instances:
|
||
- id: "app1"
|
||
domain: "app1.pb.xiongxiao.me"
|
||
replicaCount: 1
|
||
- id: "app2"
|
||
domain: "app2.pb.xiongxiao.me"
|
||
replicaCount: 1
|
||
```
|
||
|
||
## 部署命令
|
||
|
||
```bash
|
||
helm install pocketbase ./pocketbase -f values.yaml
|
||
```
|