البحث في SafeKit

التوفر العالي K3S باستخدام SafeKit: تثبيت وحدة k3s.safe للتحويل التلقائي عند الفشل

دليل التثبيت السريع Kubernetes عالي التوفر

يشرح هذا الدليل كيفية إعداد مجموعة mirror Kubernetes باستخدام SafeKit، مما يضمن تجاوز الفشل التلقائي والنسخ المتزامن دون الحاجة إلى مساحة تخزين مشتركة.

للمساعدة، يمكنك استخدام SafeKit AI 🤖.

1. نظرة عامة

  • البنية : تستخدم نظامًا ثنائي العقدة (أساسي/ثانوي).
  • حماية البيانات: تطبيق النسخ المتماثل المتزامن في الوقت الفعلي لضمان عدم فقدان البيانات (RPO = 0).

2. التثبيت

  • البرامج: قم بتثبيت محرك SafeKit على كلا الخادمين.
  • الوحدة: قم بتنزيل وحدة التطبيق k3s.safe المعدة مسبقًا.

3. التهيئة

  • وحدة التحكم بالويب: قم بتكوين المجلدات المحددة التي تحتوي على ملفات Kubernetes.
  • المراقبة: ابدأ بمراقبة تطبيق Kubernetes وحمايته.

قيود التوافر العالي SafeKit

الحد / المتطلبالسبب والتأثيرالبديل الموصى به
حجم النسخ المتماثل: بضعة تيرابايتوقت إعادة المزامنة بعد الفشل (الخطوة 3):
• شبكة بسرعة 1 جيجابت/ثانية ≈ 3 ساعات/تيرابايت
• شبكة بسرعة 10 جيجابت/ثانية ≈ ساعة واحدة/تيرابايت (حسب أداء الكتابة على القرص)
• استخدام وحدة تخزين خارجية مشتركة (أكثر تكلفة وأكثر تعقيدًا).
عدد الملفات: أقل من 1,000,000 ملف• أداء وقت إعادة المزامنة بعد حدوث عطل (الخطوة 3).
• الوقت اللازم لمقارنة كل ملف بين العقدتين.
• ضع الملفات العديدة المراد نسخها في قرص صلب افتراضي/جهاز افتراضي.
• في هذه الحالة، سيتم تكرار الملفات التي تمثل القرص الصلب الافتراضي/الجهاز الافتراضي وإعادة مزامنتها فقط.
سعة تجاوز الفشل: ≤ 32 جهازًا افتراضيًا• تعمل كل آلة افتراضية في وحدة mirror مستقلة.
• بحد أقصى 32 وحدة mirror تعمل على نفس المجموعة.
• استخدام وحدة تخزين مشتركة خارجية وحل آخر لتجميع الأجهزة الافتراضية (أكثر تكلفة وأكثر تعقيدًا).
البنية الشبكية: شبكة LAN/VLAN بين المواقع البعيدة• تجاوز الفشل التلقائي لعنوان IP الظاهري مع عقدتين في نفس الشبكة الفرعية.
• عرض نطاق ترددي جيد لإعادة المزامنة (الخطوة 3).
• زمن انتقال منخفض للنسخ المتماثل المتزامن: عادةً ما يكون أقل من 5 مللي ثانية من زمن ذهاب وعودة (RTT)؛ يجب التحقق من صحة القيم الأعلى مقابل معدل الكتابة للتطبيق.
• إذا كانت العقدتان في شبكات فرعية مختلفة (وهو أمر شائع في السحابة)، فاستخدم خيارات إعادة التوجيه الأخرى: موازن تحميل، أو واجهات سطر الأوامر لمزود السحابة، أو بروتوكول BGP، أو إعادة توجيه نظام أسماء النطاقات (DNS).
• استخدم حلول النسخ الاحتياطي مع النسخ المتماثل غير المتزامن للشبكات ذات زمن الانتقال العالي.

نظرة عامة على حل SafeKit/Kubernetes

الحل موضح هنا: 💡 توفر عالي Kubernetes K3s: نسخ متماثل متزامن وتجاوز الفشل لعقدتين

تثبيت وتهيئة حل SafeKit/Kubernetes على Linux (k3s.safe)

1. تنزيل الحزم

  • قم بتنزيل الإصدار المجاني من SafeKit 8.2 على Linux (safekitlinux_xx.bin)
  • تنزيل وحدة k3s.safe Linux
  • تنزيل البرنامج النصي k3sconfig.sh
  • الوثائق (pptx)

ملاحظة: يقوم البرنامج النصي k3sconfig.sh بتثبيت K3S و MariaDB وNFS و SafeKit على عقدتين من Linux Ubuntu 24.04.

تنزيل SafeKit (Linux) >

تنزيل k3s.safe (Linux) >

تنزيل k3sconfig.sh >

الوثائق (pdf) >

2. أولاً على كلتا العقدتين

على عقدتين من Linux أوبونتو 24.04، بصلاحيات الجذر:

  • تأكد من أن العقدة لديها إمكانية الوصول إلى الإنترنت (يمكن أن يكون ذلك من خلال وكيل)
  • انسخ ملفات k3sconfig.sh و k3s.safe وحزمة safekit_xx.bin إلى دليل ثم انتقل إليه باستخدام الأمر cd
  • أعد تسمية ملف .bin إلى “safekit.bin”
  • تأكد من أن k3sconfig.sh و safekit.bin قابلان للتنفيذ.
  • حرر البرنامج النصي k3sconfig.sh وخصص متغيرات البيئة وفقًا لبيئتك (بما في ذلك عنوان IP ظاهري)
  • نفّذ الأمر على كلا العقدتين: ./k3sconfig.sh prereq

سيقوم البرنامج النصي بما يلي:

  • تثبيت حزم دبيان المطلوبة: alien, nfs-kernel-server, nfs-common, mariadb-server
  • تأمين تثبيت MariaDB
  • إنشاء أدلة لتكرار الملفات
  • إعداد خادم NFS لمشاركة الدلائل المكررة
  • تثبيت SafeKit

3. على العقدة الأولى

نفّذ الأمر على العقدة الأولى: ./k3sconfig.sh first

سيقوم البرنامج النصي بما يلي:

  • إنشاء قاعدة بيانات تكوين K3S ومستخدم k3s
  • إنشاء ملف وحدة تخزين التخزين المكرر (ملف متفرق) وتنسيقه كنظام ملفات xfs
  • إنشاء تكوين مجموعة safekit وتطبيقه
  • تثبيت وتكوين وحدة k3s.safe على المجموعة
  • ابدأ تشغيل وحدة k3s كـ “prim” على العقدة الأولى
  • تنزيل k3s وتثبيته وتشغيله
  • تنزيل وتثبيت مخطط Helm الخاص بـ nfs-subdir-external-provisioner
  • عرض رمز K3S (لاستخدامه أثناء مرحلة تثبيت العقدة الثانية)

4. على العقدة الثانية

نفّذ الأمر على العقدة الثانية: ./k3sconfig.sh second <token>

  • هي السلسلة النصية التي تظهر في نهاية تنفيذ " k3sconfig.sh first" على العقدة الأولى

سيقوم البرنامج النصي بما يلي:

  • تأكد من بدء تشغيل وحدة k3s كـ prim على العقدة الأولى
  • تثبيت k3s على العقدة الثانية
  • ابدأ وحدة k3s

5. تحقق من أن وحدة k3s SafeKit قيد التشغيل على كلتا العقدتين

تحقق باستخدام هذا الأمر على كلا العقدتين: /opt/safekit/safekit –H "*" state

يجب أن يكون الرد مشابهاً للصورة.

/opt/safekit/safekit –H "*" state
---------------- الخادم = http://10.0.0.20:9010 ----------------
إجراء admin = تنفيذ
--------------------- حالة k3s ---------------------

  محلي (127.0.0.1): PRIM (الخدمة: متوفرة) (اللون: أخضر)
نجاح
---------------- الخادم = http://10.0.0.21:9010 ----------------
إجراء admin = تنفيذ
--------------------- حالة k3s ---------------------

  محلي (127.0.0.1): SECOND (الخدمة: متوفرة) (اللون: أخضر)
نجاح

6. ابدأ تشغيل وحدة تحكم الويب SafeKit لإدارة المجموعة

  • قم بتوصيل متصفح بعنوان URL لوحدة تحكم الويب SafeKit http://server0-IP:9010.
  • يجب أن ترى صفحة مشابهة للصورة.
  • تحقق باستخدام أسطر أوامر Linux من أن K3S قد بدأ تشغيله على كلا العقدتين (بدأ في start_prim و start_second) وأن MariaDB قد بدأ تشغيله على العقدة الأساسية (بدأ في start_prim).

بدء تشغيل مجموعة Kubernetes في وحدة تحكم الويب SafeKit

7. الاختبار

  • أوقف عقدة PRIM بالتمرير لأسفل في قائمتها السياقية والنقر على Stop.
  • تحقق من وجود تجاوز الفشل على العقدة SECOND التي يجب أن تصبح ALONE (باللون الأخضر).
  • وباستخدام أسطر الأوامر في Linux، تحقق من تجاوز الفشل للخدمات (توقفت على العقدة 1 في البرنامج النصي stop_prim وبدأت على العقدة 2 في البرنامج النصي start_prim). يجب أن يعمل MariaDB و K3S على node2.

تحذير

إذا لم يتم الوصول إلى ALONE " (باللون الأخضر) على node2، فحلل السبب باستخدام سجل وحدة العقدة 2.

  • انقر على node2 لعرض سجل الوحدة.
  • مثال على سجل وحدة SQL Server حيث يكون اسم الخدمة في start_prim غير صالح. تتم مراقبة عملية sqlserver.exe ولكن نظرًا لعدم بدء تشغيلها، تتوقف الوحدة في النهاية.

تحذير

إذا كان كل شيء على ما يرام، فابدأ التشغيل على node1، والتي ستعيد مزامنة الدلائل المكررة من node2.

إذا ساءت الأمور، أوقف node2 وافرض بدء تشغيل node1 أساسية، والتي ستتم إعادة تشغيلها ببياناتها السليمة محليًا في وقت الإيقاف.

ملاحظة

🛠️ مزيد من المعلومات حول الاختبارات في دليل المستخدم.

إيقاف الوحدة النمطية على خادم PRIM

8. جرّب المجموعة باستخدام تطبيق Kubernetes مثل WordPress

لديك مثال على تثبيت ووردبريس في الصورة: بوابة ويب مع قاعدة بيانات خلفية تم تنفيذها بواسطة البودات.

يمكنك نشر تطبيقك الخاص بنفس الطريقة.

يتمتع ووردبريس بتوافر عالٍ تلقائيًا:

  • مع بياناتها (PHP + قاعدة البيانات) في وحدات تخزين دائمة يتم تكرارها في الوقت الفعلي بواسطة SafeKit
  • مع عنوان IP ظاهري للوصول إلى موقع ووردبريس للمستخدمين
  • مع ميزة تجاوز الفشل التلقائي الاسترجاع التلقائي (failback)

ملاحظات:

  • يُعرّف مخطط WordPress خدمة موازنة التحميل التي تستمع على المنفذين <service.port> و <service.httpsport>.

  • يمكن الوصول إلى ووردبريس عبر عنوان URL التالي: http://<virtual-ip>:<service.port>.

  • تتم إدارة عنوان IP الظاهري بواسطة SafeKit ويتم تبديله تلقائيًا في حالة حدوث تجاوز للفشل.

  • بشكل افتراضي، تُنفّذ K3S موازنات التحميل باستخدام Klipper.

  • يستمع Klipper على : <service.port> ويوجه حزم TCP/IP إلى عنوان IP ومنفذ حاوية WordPress التي اختارها.

    $ export KUBECONFIG= /etc/rancher/k3s/k3s.yaml $ helm repo add bitnami https://charts.bitnami.com/bitnami $ helm install my-release bitnami/wordpress –set global.storageClass=nfs-client –set service.ports.http=8099,service.ports.https=4439

يجب أن يقوم أمر helm السابق بتنزيل صورة WordPress من registry-1.docker.io. قد تواجه مشكلات في المصادقة على registry-1.docker.io. في هذه الحالة، يجب عليك:

  • أنشئ /etc/rancher/k3s/registries.yaml على كلا العقدتين بالمحتوى التالي:

    configs:
      "registry-1.docker.io":
        auth:
          username: your_user_name
          password: your_password
        tls:
          insecure_skip_verify: true
    
  • أوقف تشغيل k3s ثم أعد تشغيله لأخذ ذلك في الاعتبار، باستخدام systemctl stop k3s و systemctl start k3s.

  • نفّذ الأمر helm registry login -u your_user_name docker.io، ثم أدخل كلمة المرور الخاصة بك

9. الدعم

  • للحصول على الدعم، التقط Snapshots SafeKit (ملفان مضغوطان)، واحدة لكل عقدة.

ملاحظة

🛠️ استكشاف الأخطاء وإصلاحها في دليل المستخدم.

التقط لقطات شاشة للدعم

10. إذا لزم الأمر، قم بتهيئة مدقق split-brain

  • راجع قسم “ما هي السيناريوهات المختلفة في حالة عزل الشبكة في مجموعة؟” أدناه لمعرفة ما إذا كنت بحاجة إلى تكوين أداة مدقق split-brain.

  • في إعدادات الوحدة النمطية، انقر على Advanced Configuration " (انظر الصورة) لتعديل userconfig.xml.

  • أعلن عن مدقق split-brain بإضافتها في قسم <check> من userconfig.xml :

    <service>
     ...
     <check>
      ...
      <splitbrain ident="witness" exec="ping" arg="witness IP"/>
     </check>
    
  • Save and apply لإعادة نشر ملف userconfig.xml المعدل على كلتا العقدتين (يجب إيقاف الوحدة على كلتا العقدتين للحفظ والتطبيق).

المعلمات :

  • يحدد ident="witness" الشاهد باسم المورد: splitbrain.witness. يمكنك تغيير هذه القيمة لتحديد الشاهد.
  • يشير exec="ping" إلى رمز ping المراد تنفيذه. لا تقم بتغيير هذه القيمة.
  • arg="witness IP" هي وسيطة لأمر ping. قم بتغيير هذه القيمة إلى عنوان IP الخاص بالشاهد (عنصر قوي، عادةً ما يكون جهاز توجيه).

أدخل المعلمات

ما هي السيناريوهات المختلفة في حالة عزل الشبكة في مجموعة؟

شبكة واحدة

عند وجود عزل للشبكة، يكون السلوك الافتراضي هو:

  • عندما تُفقد نبضات heartbeat لكل عقدة، تنتقل كل عقدة إلى ALONE وتشغل التطبيق بعنوان IP الظاهري الخاص بها (تنفيذ مزدوج للتطبيق مع تعديل بياناته المحلية)،
  • عندما يتم إصلاح العزل، تُجبر عقدة واحدة ALONE على التوقف وإعادة مزامنة بياناتها من العقدة الأخرى،
  • في النهاية، تكون المجموعة من النوع الأساسي-الثانوي (أو الثانوي-الأساسي وفقًا لاكتشاف عنوان IP الظاهري المكرر الذي أجرته Windows).

شبكتان مع شبكة نسخ متماثل مخصصة

عند وجود عزل للشبكة، يكون السلوك مع شبكة النسخ المتماثل المخصصة هو:

  • يتم تنفيذ شبكة نسخ متماثل مخصصة على شبكة خاصة،
  • تُفقد نبضات heartbeat على شبكة الإنتاج (شبكة معزولة)،
  • نبضات heartbeat على شبكة النسخ المتماثل تعمل (ليست شبكة معزولة)،
  • تظل المجموعة في حالة PRIM/SECOND.

شبكة واحدة وأداة مدقق split-brain

عند حدوث عزل للشبكة، يكون السلوك مع أداة مدقق split-brain كما يلي:

  • تم تكوين مدقق split-brain باستخدام عنوان IP الخاص بالشاهد (عادةً ما يكون جهاز توجيه)،
  • يعمل مدقق split-brain عندما ينتقل الخادم من PRIM إلى ALONE أو من SECOND إلى ALONE
  • في حالة عزل الشبكة، وقبل الانتقال إلى ALONE، تختبر كلتا العقدتين عنوان IP
  • تنتقل العقدة التي يمكنها الوصول إلى عنوان IP إلى ALONE، وتنتقل العقدة الأخرى إلى WAIT
  • عندما يتم إصلاح العزل، تعيد عقدة WAIT مزامنة بياناتها وتصبح SECOND.

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

عرض حل mirror من SafeKit

فيديو SafeKit: تجميع على مستوى التطبيق (8:47)

في هذا الفيديو، اكتشف كيف تُنفّذ SafeKit مجموعة HA mirror دون تعقيد شبكة SAN. بينما يستخدم هذا العرض التوضيحي Microsoft SQL Server، فإن الحل يعمل بشكل متطابق مع قواعد البيانات والتطبيقات الأخرى.

الفصول

  1. 🎬 عقدتان مع SQL Server (0:32)
  2. 🎬 إعداد المجموعة ووحدة mirror.safe (3:58)
  3. 🎬 بدء واختبار النسخ المتماثل لـ SQL، والترحيل، وتجاوز الفشل عند التعطل (4:17)

التنفيذ خطوة بخطوة

🔍 استكشف SafeKit

ابحث عن معلومات حول ميزات SafeKit وهياكلها ومقاطع الفيديو والوثائق والإصدار التجريبي المجاني.

الموردالوصفرابط
الميزات الرئيسيةتعرّف على سبب كون SafeKit حلاً بسيطًا وفعالًا من حيث التكلفة لضمان التوافر العالي.اكتشف الميزات الرئيسية
حالات الاستخدامتعرّف على كيفية الحفاظ على توفر التطبيقات والبنية التحتية الهامة باستخدام SafeKit.استكشف حالات الاستخدام
نموذج النشريوفر SafeKit توافرًا عاليًا دون الحاجة إلى شبكة منطقة التخزين (SAN) أو وحدة تخزين مشتركة.استكشف نموذج النشر
استراتيجيات التوافر العاليقارن بين التوافر العالي للأجهزة الافتراضية والتوافر العالي للتطبيقات.قارن بين الاستراتيجيتين
المواصفات الفنيةتحقق من المتطلبات والقيود التقنية لمجموعات SafeKit.اقرأ المواصفات الفنية
مقاطع الفيديوشاهد عروضًا توضيحية لتكوين SafeKit وتجاوز الفشل التلقائي.شاهد مقاطع الفيديو التقنية
البنيةتعرّف على كيفية قيام مجموعة mirror بنسخ الملفات احتياطيًا في الوقت الفعلي والتعامل مع تجاوز الفشل.استكشف البنية Mirror
البنيةتعرّف على كيفية موازنة مجموعة farm لحركة مرور الشبكة والتعامل مع تجاوز الفشل.استكشف البنية Farm المعمارية
مقارنة المنتجاتقارن بين SafeKit وعناقيد التوافر العالي التقليدية.قارن الحلول
الموارد التقنيةيمكنك العثور على الوثائق الفنية، وتنزيل برنامج SafeKit، والوصول إلى النسخة التجريبية المجانية.الوصول إلى الوثائق والتجربة المجانية
وحدات التطبيقاستخدم وحدات SafeKit المعدة مسبقًا لإعداد التوافر العالي لتطبيقاتك.استكشف وحدات التطبيق
SafeKit AI Chat SafeKit AI