【免费下载链接】portabase
Portabase - Database backup & restore tool for PostgreSQL, MySQL, MsSQL, MariaDB, Firebird SQL, SQLite, MongoDB, Redis and Docker Volume
Portabase 是一款开源的数据库备份与恢复工具,支持 PostgreSQL、MySQL、MsSQL、MariaDB、SQLite、MongoDB、Redis、Firebird SQL 以及 Docker Volume。本文带你用Helm Chart 将 Portabase 部署到 Kubernetes的完整流程,覆盖核心参数、持久化存储、Ingress 域名访问和常见坑点,10 分钟即可跑起一个可用的实例。
部署前:先认识 Portabase 能做什么
部署完成后,你可以通过 Web 控制台为集群内外各种数据库引擎创建备份任务、设置定时策略并一键恢复。它兼容的数据库引擎包括:
- PostgreSQL 12 ~ 18、MySQL 5.7/8/9、MariaDB 10/11
- MongoDB 4 ~ 8、SQLite 3.x、Redis 2.8+、Valkey 7.2+
- Firebird SQL、Microsoft SQL Server、Docker Volume
💡 备份与恢复由部署在数据库侧的 Portabase Agent 执行,Kubernetes 上运行的只是控制台本体。
部署前置条件清单
开始前请确认你的环境满足以下条件:
| 条件 | 说明 |
|---|---|
| Kubernetes 集群 | 可用版本,kubectl get nodes能正常输出 |
| Helm 3.x | 用于安装 Chart,helm version检查 |
| 存储类(StorageClass) | PVC 默认申请 10Gi 动态存储,集群需有可用 StorageClass |
| 基础资源 | 默认 requests/limits 为 1 CPU + 1Gi 内存 |
Chart 源码位于仓库的 helm/ 目录,版本信息见 helm/Chart.yaml(当前 chart 版本 1.30.2),开发侧使用说明见 helm/README.md。
一键安装:Helm Chart 安装步骤
先克隆仓库获取 Chart:
git clone https://gitcode.com/gh_mirrors/por/portabase cd portabase/helm执行安装命令,--set生成一个随机项目密钥(必做,替换默认的change_me占位值):
helm install portabase . \ --set project.secret=$(openssl rand -hex 32)该密钥会被写入同名的 Kubernetes Secret,并以project-secret键注入容器环境变量PROJECT_SECRET,模板见 helm/templates/secret.yaml。
values.yaml 核心参数速查
所有可配置项都集中在 helm/values.yaml,最常用的几个如下:
| 参数 | 默认值 | 说明 |
|---|---|---|
image.repository/image.tag | portabase/portabase/latest | 容器镜像与标签 |
service.type | ClusterIP | 改为NodePort可在节点直接访问 |
project.url | http://localhost:8887 | 你的实际访问地址 |
project.secret | 占位值 | 务必替换为随机串 |
project.behindProxy | false | 通过反向代理访问时设为true |
persistence.size | 10Gi | PVC 存储容量 |
timezone | Europe/Paris | 容器时区(TZ环境变量) |
updateStrategy.type | Recreate | 升级策略,勿随意改成滚动 |
ingress.enabled | false | 是否创建 Ingress |
Deployment 中还内置了三类探针,全部指向/api/health健康检查接口,保证 Pod 就绪、存活状态可被集群自动监控:
startupProbe: httpGet: path: /api/health port: 80完整探针与资源限制定义见 helm/templates/deployment.yaml。
数据持久化:PVC 与 Recreate 策略
persistence.enabled默认为true,Chart 会自动创建名为<release>-data的 PersistentVolumeClaim,挂载到容器/data目录(模板见 helm/templates/pvc.yaml)。注意两点:
- 访问模式为
ReadWriteOnce:同一时刻只有一个 Pod 能挂载该卷,因此replicaCount建议保持默认的 1; - 升级策略默认
Recreate:先停旧 Pod 再起新 Pod,避免滚动升级时新旧两个 Pod 争抢同一块存储导致 "Multi-Attach" 错误。策略说明可参考 helm/values.yaml。
服务暴露:本地端口转发与 Ingress 域名访问
方式一:本地端口转发(调试最方便,详见 helm/README.md):
kubectl port-forward svc/portabase 8887:80然后浏览器打开http://localhost:8887。
方式二:NodePort:
helm upgrade portabase . \ --set service.type=NodePort \ --set project.secret=$(openssl rand -hex 32)方式三:Ingress 域名访问(推荐生产环境)。Chart 支持完整的 Ingress 模板(见 helm/templates/ingress.yaml):
helm install portabase . \ --set project.secret=$(openssl rand -hex 32) \ --set project.url=https://portabase.example.com \ --set ingress.enabled=true \ --set ingress.className=nginx \ --set ingress.hosts[0].host=portabase.example.com \ --set project.behindProxy=true如需 HTTPS,可继续追加--set ingress.tls[0].hosts[0]=... --set ingress.tls[0].secretName=...。
验证部署与升级卸载
安装后三步验证:
kubectl get pods # 等待 Pod 变为 Running kubectl get svc # 确认 Service 创建成功 kubectl port-forward svc/portabase 8887:80 # 浏览器访问测试升级与卸载:
helm upgrade portabase . --set project.secret=<你的密钥> helm uninstall portabase常见部署问题 FAQ
Q1:升级时 Pod 报 "Multi-Attach" 错误?这是ReadWriteOnce卷被两个 Pod 同时挂载导致的。请保持默认Recreate策略;若确实需要 RollingUpdate,务必将updateStrategy.rollingUpdate.maxSurge设为0。
Q2:可以设置 replicaCount > 1 实现高可用吗?不建议。当前 Chart 使用单块ReadWriteOnce卷,多副本会互相抢占存储,默认单副本即可满足备份控制台的使用场景。
Q3:浏览器打开提示访问地址不对?检查project.url是否与真实访问地址一致;经过 Nginx 等反向代理时记得设置project.behindProxy=true,否则文件上传等功能可能异常。
Q4:忘记生成密钥会怎样?project.secret是服务端的加密主密钥,占位值直接暴露风险。请用openssl rand -hex 32生成,并且升级时保持一致,更换密钥会导致原有加密数据不可用。
总结
- Portabase 通过官方 Helm Chart 可一条命令部署到 Kubernetes,
helm install+ 随机project.secret即可 - 默认 1 CPU / 1Gi 内存、10Gi PVC、
Recreate升级策略,配置保守稳妥 - 调试用
port-forward,生产建议 Ingress + HTTPS - 关注
project.url与behindProxy两项,避免前端地址不一致的坑
掌握这套流程后,你的数据库备份控制台就跑在了 Kubernetes 上,接下来只需为各数据库安装 Agent 并创建备份策略即可。
【免费下载链接】portabase
Portabase - Database backup & restore tool for PostgreSQL, MySQL, MsSQL, MariaDB, Firebird SQL, SQLite, MongoDB, Redis and Docker Volume
相关推荐
Cadence Kubernetes部署:Helm Chart完整指南
Cadence Kubernetes部署:Helm Chart完整指南 Cadence作为分布式工作流编排引擎,在Kubernetes环境中部署需要解决状态管理
后端任务调度工作流自动化微服务如何把 m3u8、DASH 链接完整下载成本地视频:N_m3u8DL-RE 新手指南
如何把 m3u8、DASH 链接完整下载成本地视频:N_m3u8DL RE 新手指南 N_m3u8DL RE 是一款跨平台的命令行流媒体下载工具,专门处理 .m
CLI音视频Stryker.NET扩展开发:如何自定义变异器和过滤器
Stryker.NET扩展开发:如何自定义变异器和过滤器 Stryker.NET是一款功能强大的.NET变异测试工具,它能够通过修改代码生成变异体来评估测试套件
开发工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考