# datapod-helm Kubernetes Helm Charts 部署配置。 ## PocketBase Chart 部署多个 PocketBase 实例,支持 Traefik ingress。 ### 前置条件 - Kubernetes 1.19+ - Helm 3.2.0+ - Traefik ingress 控制器 - StorageClass(用于持久化存储) ### 快速开始 ```bash # 安装 Helm brew install helm ``` ### 部署 PocketBase 1. **配置实例** 编辑 `pocketbase/values.yaml`: ```yaml instances: - id: "app1" domain: "app1.pb.xiongxiao.me" replicaCount: 1 resources: requests: cpu: 100m memory: 256Mi limits: cpu: 500m memory: 512Mi - id: "app2" domain: "app2.pb.xiongxiao.me" replicaCount: 1 ``` 2. **安装** chart: ```bash # 本地 chart 安装 helm install my-pocketbase ./pocketbase -f pocketbase/values.yaml # 使用生产环境配置 helm install my-pocketbase ./pocketbase -f pocketbase/values-production.yaml ``` 首次安装 ``` helm install my-pocketbase ./pocketbase -f pocketbase/values.yaml ``` 3. **获取 admin 密码**: ```bash kubectl get secret pocketbase-app1-secrets -o jsonpath='{.data.admin-password}' | base64 -d ``` 4. **访问** Admin UI: - 地址: `https://app1.pb.xiongxiao.me/_/` - 邮箱: 查看 secret - 密码: 查看 secret ### 配置参数 | 参数 | 说明 | 默认值 | |------|------|--------| | `instances` | PocketBase 实例列表 | `[]` | | `instances[].id` | 实例唯一标识 | - | | `instances[].domain` | 实例完整域名 | - | | `instances[].replicaCount` | 副本数量 | `1` | | `persistence.enabled` | 启用数据持久化 | `true` | | `persistence.size` | PVC 大小 | `1Gi` | | `persistence.storageClass` | StorageClass 名称 | - | ### 升级 ```bash helm upgrade my-pocketbase ./pocketbase -f pocketbase/values.yaml ``` ### 卸载 ```bash helm uninstall my-pocketbase ``` ### 常用命令 ```bash # Lint 检查 helm lint ./pocketbase # 模板渲染测试 helm template test-release ./pocketbase -f ./pocketbase/values-production.yaml # 模拟安装(调试模式) helm install --dry-run --debug my-pocketbase ./pocketbase -f ./pocketbase/values-production.yaml ``` ### 技术说明 - **数据库**: 使用 SQLite 本地存储,数据保存在 `/pb/pb_data` 目录 - **持久化**: 通过 PVC 实现数据持久化 - **入口**: 使用 Traefik IngressRoute 配置路由