更新与扩展
第二天的运营: 获取新的发布,并随着团队的成长给予 Kanera 更多的空间。
最新情况
每个Kanera版本都是标记版本,如 v1.9.0 具有自己的 docker-compose.yml。更新意味着交换新版本的撰写文件并拉取其图像。您可以跳过版本:从 v1.9.0 直接升级到 v1.12.0 就可以了,因为每个待处理的数据库迁移在更新期间都会按顺序运行。
更新到最新版本
从你的 kanera 服务器上没有找到该页面
docker compose exec -T postgres pg_dump -U kanera kanera | gzip > kanera-$(date +%F).sql.gz
cp docker-compose.yml docker-compose.previous.yml
curl -fsSLo docker-compose.yml https://github.com/happendev/Kanera/releases/latest/download/docker-compose.yml
docker compose pull
docker compose up -d
docker compose logs migrate
在运行之前,请阅读 发行说明 需要采取行动的更改,例如新设置或一次性重新连接,会在引入该更改的版本下面列出,因此从 v1.9.0 到 v1.12.0 的更改意味着要阅读 1.10.0、1.11.0 和 1.12.0 的说明。
要转移到特定版本而不是最新版本,请按标记下载其编写文件:
curl -fsSLo docker-compose.yml https://github.com/happendev/Kanera/releases/download/v1.9.0/docker-compose.yml
检查您正在运行哪个版本
docker compose images api
该 TAG 例如,列显示发布 1.9.0。第一行 docker-compose.yml 太过分了。
更新前
- 备份数据库并上传。 该
pg_dump数据库的使用kanera_uploads保留两者,再加上您的.env,关闭服务器的主磁盘。参见 存储与备份. - 保留上一个编写文件。 该
cp将其保存为docker-compose.previous.yml,这就是您需要回滚的内容。 - 保持您的更改不会被
docker-compose.yml. 将端口、额外网络或其他本地更改放入一个新的文件夹中。docker-compose.override.yml编写会自动合并它,更新时不会影响它。 - 确保当前部署正常运行。 更新不应隐藏现有的数据库、存储或路由问题。
验证更新
docker compose images api
docker compose ps --all
docker compose logs --tail=100 api worker public-api mcp
curl https://kanera.example.com/api/health
该 api 图像应该显示新版本,并且 migrate 应显示为退出,代码为 0。 还要检查公共 API 和 MCP 运行状况端点(如果您公开了它们 ), 然后登录,打开填充的看板,并创建和删除临时卡片。
如果更新失败
- 迁移未开始: 修复编写或环境错误并重新运行
docker compose up -d. - 迁移失败: 保留日志和备份,并且不要在不了解错误的情况下反复重新运行。 打开一个问题 与
migrate日志。 - 您需要返回: 较旧的版本不能在较新的版本迁移的数据库上运行。 Stop Kanera (
docker compose down),恢复更新前的数据库并一起上传,把之前的compose文件放回去(mv docker-compose.previous.yml docker-compose.yml),然后运行docker compose up -d. - 切勿在运行的更新版本上恢复备份。 在依赖之前,请先在单独的数据库或主机上测试恢复过程。
比例尺
默认部署使用多个应用 API 副本和一个工作程序。
API_REPLICAS控制应用 API 进程计数。 默认值为2.PUBLIC_API_REPLICAS控制公共 API 进程计数。 默认值为1.MCP_REPLICAS控制 MCP 进程计数。1.- 保持
worker确切地说1. - 实时范围、存在和共享速率限制需要 Valkey。
只有在服务器具有足够的 CPU、内存和数据库连接容量时才能提升副本。 API_REPLICAS, 回顾 PG_POOL_MAX SQL 和 PostgreSQL 数据库 max_connections.
单个工作进程是故意的,它运行调度程序、通知和 webhook 交付以及清理作业,而第二个副本将重复而不是共享这些工作。 如果交付落后,请在考虑增加工作进程之前查看数据库和出站网络容量。