Hopp til hovedinnholdet

Oppdateringer og skalering

Dag to-operasjoner: få nye utgivelser i, og gi Kanera mer plass etter hvert som teamet vokser.

Oppdateringer​

Hver Kanera-utgivelse er en merket versjon som v1.9.0 Med sin egen docker-compose.yml. Oppdatering betyr å bytte i den nye utgivelsens komponere fil og trekke dens bilder. Du kan hoppe over utgivelser: går fra v1.9.0 rett til v1.12.0 er greit, fordi hver ventende databaseoverføring kjører i rekkefølge under oppdateringen.

Oppdater til den nyeste versjonen​

Fra din kanera katalog på serveren:

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

Før du kjører den, les Utgivelsesnotater En endring som krever handling, for eksempel en ny innstilling eller en engangstilkobling, er oppført under utgivelsen som introduserte den, så å gå fra v1.9.0 til v1.12.0 betyr å lese 1.10.0, 1.11.0 og 1.12.0 notatene.

Hvis du vil flytte til en bestemt utgivelse i stedet for den nyeste, laster du ned den komponere filen etter tag:

curl -fsSLo docker-compose.yml https://github.com/happendev/Kanera/releases/download/v1.9.0/docker-compose.yml

Sjekk hvilken versjon du kjører​

docker compose images api

Den TAG kolonnen viser utgivelsen, for eksempel 1.9.0Den første linjen av docker-compose.yml Navnene også.

Før oppdatering​

  • Sikkerhetskopier databasen og opplastinger. Den pg_dump Den dekker hele databasen, og kanera_uploads volumet trenger sin egen kopi. Behold begge, pluss .env, fra serverens primære disk. Se Lagring og sikkerhetskopiering.
  • Behold den forrige komponere filen. Den cp Ovenfor er det som docker-compose.previous.ymlDet er det du trenger for å rulle tilbake.
  • Hold endringene dine ute av docker-compose.yml. Oppdateringen erstatter filen. Sette porter, ekstra nettverk eller andre lokale endringer i en docker-compose.override.yml ved siden av den; Komponer fusjonerer den automatisk og oppdateringer la det være alene.
  • Sørg for at den nåværende distribusjonen er sunn. En oppdatering bør ikke skjule en eksisterende database, lagring eller ruting problem.

Sjekk oppdateringen​

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

Den api Bildet skal vise den nye versjonen, og migrate skal vises som avsluttet med kode 0. Sjekk også de offentlige API- og MCP-helseendepunktene hvis du utsetter dem. Logg deretter på, åpne et fylt tavle og opprett og slett et midlertidig kort.

Hvis en oppdatering mislykkes​

  • Migrasjonen startet ikke: fikse Compose eller miljøfeil og kjøre på nytt docker compose up -d.
  • Migrasjonen mislyktes: holde loggene og sikkerhetskopien, og ikke kjøre den på nytt flere ganger uten å forstå feilen. Åpne et problem med migrate logger.
  • Du må gå tilbake: en eldre versjon kan ikke kjøre mot en database den nyere har migrert. Stopp Kanera (docker compose down), gjenopprette pre-oppdateringsdatabasen og opplastinger sammen, sette forrige komponere filen tilbake (mv docker-compose.previous.yml docker-compose.yml), og løp docker compose up -d.
  • Aldri gjenopprett en sikkerhetskopi over en nyere versjon som kjører. Test gjenopprettingsprosedyren på en egen database eller vert før du stoler på den.

Skalering av notater​

Standarddistribusjonen bruker flere app API-replikaer og én arbeider.

  • API_REPLICAS kontrollerer antall API-prosesser for apper. 2.
  • PUBLIC_API_REPLICAS kontrollerer antall offentlige API-prosesser. 1.
  • MCP_REPLICAS kontrollerer antall MCP- prosesser. Standardverdi for 1.
  • Behold worker På nøyaktig 1.
  • Valkey er nødvendig for sanntidsutvidelse, tilstedeværelse og delte rategrenser.

Hev kopier bare når serveren har nok CPU-, minne- og databasetilkoblingskapasitet. Hvis du øker API_REPLICAS, gjennomgang PG_POOL_MAX og PostgreSQL max_connections.

Den enkelte arbeideren er bevisst. Den kjører planleggere, varsling og webhook levering og oppryddingsjobber, og en annen kopi vil duplisere det arbeidet i stedet for å dele det. Hvis leveringen faller bak, se på database og utgående nettverkskapasitet før du vurderer flere arbeidsprosesser.