الترقيات هي حيث تُثبت موثوقية قاعدة البيانات أو تُكسر. يقدّم هذا المقال دليل تشغيل مُقاس الإيقاع ومناسب للدعم لترقية Couchbase Server تحت Couchbase Autonomous Operator (CAO)، باستخدام الحقل الأصلي spec.paused لكبح التقدم بين العقد. النتيجة: عقدة واحدة في كل مرة، نافذة استقرار بين المبادلات، إشارات أوضح ونافذة تراجع أكبر.
طوبولوجيا مرجعية
حلقة الترقية المُقاسة
الأهداف
- ترقية Couchbase Server بأقل مخاطر.
- الإبقاء على نافذة متعمدة من إيقاف + استقرار + فحص صحة بين العقد.
- الحفاظ على خيارات التراجع لأطول وقت عملي.
قائمة ما قبل الترقية (لا تتخطّها)
- كل شيء أخضر: مرحلة العنقود
Available، بلا إعادة توازن نشطة، بلا أحداث Warning. - نسخ احتياطي حالي وقابل للاستعادة: اكتمل نسخ كامل؛ أُجري تدريب استعادة أو فُهم الوقت.
- وُسم التراجع مسجّل: تحقق من أن الصورة القديمة ما زالت موجودة ويمكن سحبها.
- قرار XDCR مسجّل: عطّل أثناء ترقيات الإنتاج لإشارة نظيفة (موصى به)، أو أبقِه في ما قبل الإنتاج لتمرين السلوك.
أوامر تحقق سريعة
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"}'
مسارات التنفيذ
- المفضّل: شغّل الترقية من سير عمل CI (dry-run أولاً ثم فعلي).
- البديل: شغّل سكربت الترقية المُقاسة من workstation (dry-run أولاً ثم فعلي).
إشارات المراقبة (ما يجب أن يراقبه الدعم)
- صور الـ pods: انتقال قديمة → جديدة؛ مبادلة واحدة في كل مرة مثالية.
- حالة الإيقاف:
spec.pausedيصبح true أثناء الاستقرار؛ لا تتركه true دون مراقبة. - إعادة التوازن: يعود إلى none بين المبادلات؛ حقّق في إعادة التوازن المستمرة.
- XDCR: يرتفع
changes_leftأثناء إعادة التوازن وينخفض أثناء الاستقرار؛ عدم الانخفاض إشارة حادث. - إعادة التشغيل: أي إعادة تشغيل غير متوقعة بعد المبادلة علم أحمر.
محفزات التراجع
- العقدة لا تصبح سليمة ضمن نافذة المهلة.
- تفشل إعادة التوازن ولا تُحل بمحاولة واحدة بعد التحقيق.
- معدل أخطاء التطبيق يتجاوز التسامح المتفق عليه.
- لا يتعافى XDCR بعد نافذة الاسترداد المتفق عليها.
- أي bucket غير متاح (vbuckets مفقودة) — عالج كـ P1.
التحقق بعد الترقية (الاعتماد)
- كل الـ pods على الصورة المستهدفة
- مرحلة العنقود
Available - لا أحداث Warning جديدة لمدة 30+ دقيقة
- نجاح النسخ الاحتياطي بعد الترقية
- استعادة الحالة المستقرة لـ XDCR (إن استُخدم)
- لوحات التطبيق خضراء لمدة 30+ دقيقة
نصيحة: إن أردت نسخة سردية أقصر أولاً، ابدأ بملخص المدونة: ترقيات Couchbase ببوابات إيقاف CAO.