跳轉到主要內容

更新與擴充套件

第二天的運營: 獲取新的釋出,並隨著團隊的成長給予 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 交付以及清理作業,而第二個副本將重複而不是共享這些工作。 如果交付落後,請在考慮增加工作程序之前檢視資料庫和出站網路容量。