Upgrades zijn waar databasereliability bewezen of gebroken wordt. Dit artikel biedt een paced, supportvriendelijk runbook voor het upgraden van Couchbase Server onder de Couchbase Autonomous Operator (CAO), met het native veld spec.paused om voortgang tussen nodes te gate'en. Resultaat: één node tegelijk, een stabilisatievenster tussen swaps, duidelijkere signalen en een groter rollbackvenster.
Referentietopologie
De paced upgrade-loop
Doelen
- Upgrade Couchbase Server met minimaal risico.
- Houd een bewuste pause + stabiliseer + health check-venster tussen nodes.
- Behoud rollbackopties zo lang als praktisch.
Pre-upgrade checklist (niet overslaan)
- Alles groen: clusterfase
Available, geen actieve rebalance, geen warning-events. - Back-ups actueel en herstelbaar: volledige backup voltooid; restore-drill gedaan of tijd begrepen.
- Rollback-tag vastgelegd: verifieer dat de oude image nog bestaat en pullbaar is.
- XDCR-besluit vastgelegd: uitschakelen tijdens prod-upgrades voor schoon signaal (aanbevolen), of laten lopen in pre-prod om gedrag te oefenen.
Snelle verificatiecommando's
export ENV=dev
export REGION=west
export NS=couchbase-${ENV}-${REGION}
kubectl -n "$NS" get couchbasecluster -o wide
kubectl -n "$NS" get pods -l app=couchbase
kubectl -n "$NS" get events --field-selector type=Warning | tail -20
kubectl -n "$NS" get couchbasecluster "$NS" -o jsonpath='paused={.spec.paused} phase={.status.phase} rebalance={.status.rebalanceProgress}{"\n"}'
Uitvoeringspaden
- Voorkeur: voer de upgrade uit vanuit uw CI-workflow (eerst dry-run, dan echt).
- Fallback: voer het paced upgradescript uit vanaf een workstation (eerst dry-run, dan echt).
Monitoringsignalen (waar support op let)
- Pod-images: verschuiving oud → nieuw; één swap tegelijk is ideaal.
- Pausestatus:
spec.pausedwordt true tijdens stabilisatie; nooit true laten zonder toezicht. - Rebalance: keert terug naar none tussen swaps; onderzoek aanhoudende rebalances.
- XDCR:
changes_leftpiekt tijdens rebalance en daalt tijdens stabilisatie; niet dalen is een incident-signaal. - Restarts: onverwachte restarts na swap zijn een rode vlag.
Rollback-triggers
- Node wordt niet healthy binnen het timeoutvenster.
- Rebalance faalt en lost niet op met één retry na onderzoek.
- Applicatiefoutpercentage overschrijdt de afgesproken tolerantie.
- XDCR herstelt niet na het afgesproken recoveryvenster.
- Elke bucket unavailable (ontbrekende vbuckets) — behandel als P1.
Post-upgrade validatie (sign-off)
- Alle pods op de doelimage
- Clusterfase
Available - Geen nieuwe warning-events gedurende 30+ minuten
- Backup geslaagd na upgrade
- XDCR steady-state hersteld (indien gebruikt)
- Applicatiedashboards groen gedurende 30+ minuten
Tip: Wilt u eerst een kortere narratieve versie, begin met het blogoverzicht: Couchbase-upgrades met CAO pause-gates.