تخطَّ إلى المحتوى
kazma.
البحث في كاظمه والتوثيق
EN

المناطق المتعددة والتوافر العالي

تأهيل المناطق المتعددة والتوافر العالي

Section titled “تأهيل المناطق المتعددة والتوافر العالي”

يشغّل ملف إعداد HA في كاظمه مالك تشغيل نشطًا واحدًا. يمكن أن يبدأ بديل بعد تسييج المالك السابق ونقل وحدة الحالة الكاملة بأمان. دعم Postgres في مخازن منفردة لا يجعل كل مخزن تشغيل مشتركًا ولا يسمح بنسخ نشطة أفقية.

بيان Kubernetes المشحون قالب إعداد. اجتازت اختبارات الملكية المحلية وتمارين Postgres المؤقتة؛ وما زال تسييج تخزين العنقود الفعلي وفشل العقدة والتعافي عبر المناطق يحتاج إلى تأهيل.

Section titled “بنية التجهيز الموصى بها”

استخدم عنقود Kubernetes مُدارًا بعقد Linux في نطاقات فشل مستقلة، وPostgres عالي التوافر مُدارًا مع نسخ احتياطية واستعادة إلى نقطة زمنية، ومشغّل CSI لتخزين كتل مكرر ذي سلوك فصل وتسييج موثق. افصل التجهيز عن التثبيت الحي، وامنحه قاعدة وأسرارًا وتخزينًا وتكاملات اختبارية خاصة به.

المكوّنالعقد
كاظمهنسخة StatefulSet واحدة، ببصمة صورة إصدار مثبتة
القاعدةجلسة ملكية Postgres مخصصة؛ نقطة مباشرة أو تجميع جلسات، لا تجميع معاملات
الحالةوحدة /state كاملة: البيانات والمنزل والمهارات والذاكرة المتجهية وتخزين المستندات ومساحات العمل المضبوط
التخزينReadWriteOncePod ودعم CSI وإثبات تسييج العقدة القديمة
التوجيهingress مع TLS؛ الجاهزية في /health/ready؛ وعناوين الوكلاء الموثوقين الصحيحة
التعافينسخة مقترنة للقاعدة والحالة، ومفتاح الخزنة الأصلي، وتمرين استعادة مقاس

قد يسمح ReadWriteOnce بأكثر من pod على العقدة نفسها. استخدم ReadWriteOncePod مع مشغّل CSI متوافق؛ ولا يثبت نمط الوصول وحده تعافيًا آمنًا من عقدة لا يمكن الوصول إليها. انظر توثيق أنماط الوصول للتخزين في Kubernetes.

العثور على عنقود تجهيز قائم

Section titled “العثور على عنقود تجهيز قائم”

Google Cloud اختياري؛ ولا يحتاج تثبيت كاظمه القائم حسابًا سحابيًا ليواصل العمل. سجّل الدخول بحساب يستطيع الوصول إلى المشروع المختار. يمكن لحساب شخصي امتلاك مشروع تطوير؛ وللمؤسسة استخدم ملكية المؤسسة ومشروعي تجهيز وإنتاج منفصلين.

تكتشف أوامر PowerShell هذه صلاحية الوصول دون إنشاء موارد سحابية:

نافذة طرفيّة
kubectl config get-contexts
gcloud auth login
gcloud config get-value project
gcloud container clusters list

تنطبق أوامر Google Cloud حين يكون ذلك الحساب هو المزوّد المختار. راجع غرض المشروع والعنقود قبل اختيار الهدف. إذا وُجد عنقود تجهيز، فاحصل على سياقه باسمه وموقعه ومشروعه الفعليين:

نافذة طرفيّة
gcloud container clusters get-credentials CLUSTER_NAME --location LOCATION --project PROJECT_ID
kubectl config current-context
kubectl get nodes -o wide
kubectl get storageclasses
kubectl get csidrivers

انظر دليل Google للوصول إلى العناقيد لإضافة المصادقة المطلوبة وأمر بيانات الاعتماد.

إذا تعذّر تحديث تسجيل الدخول تلقائيًا، فعلى المالك إكمال الدخول التفاعلي. وإذا لم يوجد عنقود مناسب، يحتاج الإنشاء مشروعًا ومنطقة وحد إنفاق مختارين وخطة التخزين والنسخ أعلاه. يمكن لعنقود Docker أو kind المحلي تمرين تعافي pod، لكنه لا يؤهّل HA بين المضيفين.

إبقاء تكلفة التأهيل صغيرة

Section titled “إبقاء تكلفة التأهيل صغيرة”

ابدأ باختبارات الملكية المحلية وفقد جلسة Postgres وإعادة تشغيل الرسم الفعلي. لا تحتاج موارد سحابية جديدة. سجّل تسييج العنقود والعقدة كغير مؤهّل حتى يُختبر على مضيفين منفصلين بالتخزين المقصود.

حين يلزم التأهيل بين المضيفين استخدم مشروع تجهيز مخصصًا ومؤقتًا. قدّر تكلفة العنقود الإقليمي وعقدتي Linux على الأقل في منطقتي توافر مختلفتين، وHA Postgres وتخزين CSI المكرر والنسخ الاحتياطية ورسوم الشبكة لنافذة اختبار محددة. افحص المنطقة المختارة في حاسبة أسعار Google Cloud قبل إنشاء الموارد. لا تعوّض آلة افتراضية رخيصة واحدة أو عدة حاويات محلية اختبار نطاقات الفشل هذا. أوقف الموارد الاختبارية أو احذفها وتحقق من الأقراص واللقطات وقواعد البيانات المتبقية بعد جمع الدليل؛ وأبقِ الإنتاج منفصلًا.

  1. أنشئ namespace مخصصًا للتجهيز وقاعدة Postgres مُدارة منفصلة. سجّل سياق Kubernetes صراحة في كل أمر نشر.
  2. اختر فئة تخزين CSI مكررة بدعم مؤكد لـReadWriteOncePod. اقرأ إجراء المزوّد لتسييج العقدة المفقودة.
  3. انسخ deploy/kubernetes/runtime.yaml إلى إعداد نشر يديره المشغّل. استبدل قيمة الصورة البديلة ببصمة مؤهّلة وقيمة فئة التخزين بالفئة المختارة. أبقِ replicas: 1.
  4. املأ السر kazma-runtime-secrets المشار إليه عبر مدير الأسرار المعتمد: database-url وauth-secret وvault-key وtrusted-proxies. اضبط اعتمادات المزوّد بالطريقة المحمية نفسها. لا تضع القيم السرية في Git. يجب أن يحفظ عنوان القاعدة جلسة الملكية.
  5. تحقق من وقوع كل مسار دائم مضبوط تحت وحدة الحالة الكاملة. هاجر المخازن مرة واحدة وفق دليل الهجرة قبل بدء الخادم؛ فالقالب يعطّل الهجرة التلقائية.
  6. راجع البيان المولّد، وانشر في التجهيز فقط، وتحقق من الجاهزية والمصادقة ودردشة آمنة وسلوك الموافقة والرفض واستمرار الحالة.
  7. اضبط نسخ Postgres ووحدة الحالة بصورة منسقة. استعدهما في بيئة تجهيز جديدة قبل بدء تمارين الانتقال عند الفشل.

تحتفظ بيئة التشغيل بتسييج كاتب محلي من نظام التشغيل. يضيف KAZMA_RUNTIME_HA=1 جلسة ملكية Postgres مخصصة ويربط القاعدة بوحدة الحالة الكاملة. يوقف فقد الجلسة العملية بدل إعادة حجز الملكية مع احتمال آثار غير يقينية. يجب أيضًا أن يمنع تسييج التخزين مضيفًا قديمًا من الكتابة بعد بدء البديل.

استخدم أعمالًا اصطناعية وأهدافًا مؤقتة. احفظ الطوابع الزمنية واستجابات الجاهزية ودليل المالك والجلسة وأحداث pod والعقدة وربط الوحدة وصفوف الموافقة وإيصالات الأدوات وسجل تدقيق الهدف الخارجي لكل تمرين.

التمرينالنتيجة المطلوبة
خروج pod أثناء قراءةيصبح البديل جاهزًا وتبقى المحادثة المحفوظة قابلة للقراءة
خروج pod بعد استدعاء مغيّريُحجز الأثر المجهول؛ لا أثر مكرر ولا نجاح مختلق
إعادة التشغيل مع موافقة غير مجابةتنجو البوابة المعلّقة نفسها؛ ويمنع الرفض التنفيذ
إعادة التشغيل أثناء استئناف الموافقةينجو قرار الإنسان؛ التنفيذ غير مؤكد والأزرار القديمة مغلقة
محاولة نسخة ثانية حجز الملكيةتُرفض ما دام المالك الأول حيًا
فقد جلسة ملكية Postgresتتوقف العملية القديمة؛ ولا تحجز الملكية مجددًا بصمت
فشل عقدة العامل أو عزلهايُثبت تسييج الكاتب القديم قبل ربط الوحدة وجاهزية البديل
انتقال القاعدة عند الفشليتبع فقد الملكية والتعافي عقد التسييج نفسه؛ دون تداخل مالكين
استعادة النسخ المقترنةتتفق الخزنة ونقاط الرسم وقرارات الموافقة وإيصالات الأدوات؛ وتُطابق أدلة الهدف قبل كتابات جديدة

ابدأ بإنهاء pod العادي. اجعل مشغّل العنقود ينفّذ تمارين فشل العقدة والشبكة بإجراء المزوّد. لا تحذف pod في StatefulSet لا يمكن الوصول إليه قسرًا لتسريع التعافي قبل إثبات موت عمليته القديمة أو تسييجها؛ فقد يكرر البديل هويتها. انظر إرشادات الحذف القسري لـStatefulSet.

حدّد RTO وRPO المقبولين قبل التمرين. قِس الانقطاع حتى استعادة الجاهزية، ثم تحقق من إمكان استئناف العمل الصحيح؛ لا تثبت نقطة صحة خضراء وحدها سلامة الآثار. يتطلب التأهيل غياب الكتّاب المتزامنين والآثار الخارجية المكررة، ونجاح الاستعادات المقترنة. احتفظ بدليل الفشل وأصلح سببه قبل تكرار التمرين المتأثر.

ابدأ بمنطقة نشطة واحدة. تحتاج المنطقة الثانوية نسخًا مقترنة قابلة للاستعادة للقاعدة والحالة ومفتاح الخزنة نفسه، مع إبقاء تشغيلها متوقفًا حتى تسييج المالك والتخزين الأصليين. اختبر الاستعادة وتحويل التوجيه قبل ادّعاء RTO إقليمي. يظل التنفيذ النشط/النشط عبر المناطق غير مؤهّل.

انظر التعافي من الكوارث، وPostgres وSaaS ودليل النشر.