Nodes

  • حل مشكلة master_not_discovered_exception في Elasticsearch

    في الوقت الذي قمت فيه بتكوين إعدادات Elasticsearch الخاصة بك بشكل صحيح لتشكيل مجموعة من عقدة العمل، يبدو أن هناك مشكلة في عملية الانضمام بين العقدتين. الخطأ “master_not_discovered_exception” يشير إلى أن عقدة واحدة على الأقل ليست قادرة على اكتشاف عقدة الماستر في النظام.

    تأكد من أن الإعدادات الخاصة بـ unicast host تحتوي على عناوين IP صحيحة للعقدتين، وتأكد من أن الاتصال بين العقدتين يعمل بشكل صحيح (لا توجد مشكلات في جدار الحماية أو الشبكة). يجب أن تكون القيمة الخاصة بـ “discovery.zen.minimum_master_nodes” تساوي الحد الأدنى لعدد العقد التي يجب أن تكون متصلة لتشكيل الماستر.

    بالنسبة للعقدة الثانية، يبدو أنها تعتقد أنها ليست عقدة ماستر، ولكن يجب أن تكون عقدة الماستر هي العقدة الأولى التي انضمت إلى النظام (node1). تأكد من أن الإعدادات الخاصة بـ “node.master” صحيحة في كل عقدة.

    بعد التحقق من هذه النقاط، قم بإعادة تشغيل Elasticsearch على كلا العقدتين وتحقق من السجلات لرؤية ما إذا كان هناك أي مشكلات أخرى تظهر.

    المزيد من المعلومات

    إذا كان هناك تحدي في اكتشاف عقدة الماستر، يمكنك محاولة تنفيذ الخطوات التالية لتحديد السبب وإصلاح المشكلة:

    1. تحقق من إعدادات الشبكة: تأكد من أن جميع العقد متصلة بشبكة متاحة ويمكنها التواصل بشكل صحيح مع بعضها البعض. قد تحتاج إلى فحص جدار الحماية للسماح بالاتصال بين العقد.

    2. التحقق من إعدادات العقد: تأكد من أن إعدادات كل عقدة صحيحة، بما في ذلك اسم العقدة، وإعدادات الشبكة (مثل network.host، http.port)، وإعدادات الاكتشاف (مثل discovery.zen.ping.unicast.hosts، discovery.zen.minimum_master_nodes)، وإعدادات السكربت (مثل script.inline، script.indexed)، وما إلى ذلك.

    3. تحقق من السجلات: قم بفحص سجلات تشغيل Elasticsearch (elasticsearch.log) للعقدتين لمعرفة ما إذا كانت هناك أي أخطاء أو تحذيرات تشير إلى مشكلة في الانضمام إلى العقدة الماستر.

    4. إعادة تشغيل العقد: جرب إعادة تشغيل Elasticsearch على كل من العقدتين بعد التحقق من الإعدادات وحل أي مشكلة محتملة. قد تحتاج إلى إعادة تكوين العقدة الماستر إذا لزم الأمر.

    5. استخدام أدوات الفحص: يمكنك استخدام أدوات مثل curl لإجراء طلبات HTTP مباشرة إلى عقد Elasticsearch لفحص حالته والتحقق من اتصاله بالعقدة الماستر.

    6. التحقق من حالة العقد: استخدم الأمر GET /_cat/nodes?v لعرض قائمة بالعقد وحالتها، بما في ذلك ما إذا كانت عقدة ماستر مكتشفة بشكل صحيح.

    7. التحقق من حالة العقدة الماستر: استخدم الأمر GET /_cat/master?v للتحقق من أن العقدة الماستر تعمل بشكل صحيح ومكتشفة بشكل صحيح من العقد الأول.

    8. التحقق من الإصدار: تأكد من أن جميع العقد تستخدم إصدار متوافق من Elasticsearch، حيث قد تكون هناك مشاكل في الاتصال بين إصدارات غير متوافقة.

    بعد مراجعة هذه النقاط واتباع الخطوات المذكورة، يجب أن تكون قادرًا على تحديد سبب مشكلة master_not_discovered_exception وإصلاحها للسماح بتشكيل مجموعة Elasticsearch بنجاح.

  • إيقاف تشغيل الـ Nodes في Kubernetes بأمان

    عند العمل مع عناصر Kubernetes، يتطلب تشغيل وإيقاف الآلات أو الـ nodes في العنقود نهجًا حذرًا ومدروسًا لضمان استمرارية الخدمة دون توقف. يبدو أن لديك استفسار حول كيفية إيقاف تشغيل الـ node بشكل آمن وسلس في Kubernetes، وهو أمر يتطلب إجراءات محددة لضمان عدم تأثير العمليات الحالية وتجنب حدوث فترات توقف.

    في هذا السياق، يمكنك اتباع الخطوات التالية لإيقاف تشغيل الـ node بشكل سلس:

    1. تحديد الـ Node كغير جاهز للتخطيط:
      يمكنك استخدام أمر kubectl cordon لتحديد الـ node كغير جاهز للتخطيط، وهذا يعني أن Kubernetes لن يقوم بتخطيط المزيد من الـ pods على هذا الـ node. هذا يمنع أي pods جديدة من البدء على الـ node الذي تريد إيقاف تشغيله.

      php
      kubectl cordon <اسم الـ node>
    2. نقل الـ Pods إلى Nodes أخرى:
      يمكنك استخدام kubectl drain لنقل الـ pods من الـ node المستهدف إلى nodes أخرى. هذا يساعد في تحميل الـ node بشكل آمن دون توقف الخدمة.

      css
      kubectl drain <اسم الـ node> --ignore-daemonsets
    3. حذف الـ Pods بشكل سلس:
      بعد نقل الـ pods بنجاح، يمكنك حذف الـ pods التي كانت تعمل على الـ node بشكل سلس باستخدام الأمر:

      css
      kubectl delete pods --all --grace-period=300

      هذا يسمح بإغلاق الـ pods بشكل تدريجي وتفادي أي انقطاع في الخدمة.

    4. حذف الـ Node:
      بعد التأكد من أن جميع الـ pods تم نقلها وحُذفت بشكل آمن، يمكنك حذف الـ node بشكل نهائي باستخدام:

      arduino
      kubectl delete node <اسم الـ node>

      يجب أن يتم هذا الإجراء بعد التأكد من أن الـ node ليس لديه أي pods تعمل عليه.

    من خلال اتباع هذه الخطوات بعناية، يمكنك ضمان إيقاف تشغيل الـ node بشكل سلس دون التأثير على استمرارية الخدمة في عنقود Kubernetes الخاص بك.

    المزيد من المعلومات

    بالتأكيد، دعونا نعمق أكثر في بعض المفاهيم والتوجيهات المتعلقة بإيقاف تشغيل الـ nodes في Kubernetes بشكل سلس.

    تحديد غير جاهز للتخطيط (Cordon):

    عندما تستخدم الأمر kubectl cordon لتحديد الـ node كغير جاهز للتخطيط، يتم وضع تسمية “NoSchedule” على الـ node. هذا يعني أن Kubernetes لن يخطط لتشغيل pods إضافية على هذا الـ node، ولكن لا يؤثر على الـ pods القائمة بالفعل عليه. يُفضل تنفيذ هذه الخطوة قبل أي عملية إيقاف تشغيل.

    نقل الـ Pods باستخدام Drain:

    أمر kubectl drain يقوم بنقل الـ pods من الـ node المستهدف إلى nodes أخرى. يُفضل استخدام --ignore-daemonsets لتجاوز الـ pods المتحكمة من قبل daemonsets، حيث يتم التعامل معها بشكل منفصل. هذا يحول دون نقل الـ pods المهمة للنظام ويضمن استمرار عمل الـ cluster.

    حذف الـ Pods بشكل تدريجي:

    استخدام kubectl delete pods يتيح لك حذف الـ pods بشكل تدريجي. يُفضل استخدام --grace-period=300 لإعطاء الـ pods فترة زمنية كافية لإتمام أية عمليات قبل حذفها نهائيًا. هذا يُسهم في تفادي أي انقطاع في الخدمة.

    حذف الـ Node بشكل نهائي:

    بعد التأكد من نقل وحذف الـ pods، يمكنك استخدام kubectl delete node لحذف الـ node بشكل نهائي من عنقود Kubernetes. يُفضل التأكد من عدم وجود أي pods يتم تشغيلها على الـ node قبل تنفيذ هذه الخطوة.

    متابعة الأحداث (Events) وسجلات الـ Pods:

    من المهم متابعة أحداث الـ cluster وسجلات الـ pods أثناء عملية إيقاف التشغيل. يمكنك استخدام kubectl get events للحصول على نظرة عامة عن الأحداث الحالية.

    استخدام أوامر انتقائية:

    يمكنك أيضًا استخدام أوامر انتقائية مثل kubectl top node لرصد موارد الـ node قبل وبعد عملية إيقاف التشغيل، مما يساعد في فحص أي تأثير على أداء الـ cluster.

    باستخدام هذه الإرشادات، يمكنك تحقيق عملية إيقاف تشغيل الـ nodes في Kubernetes بشكل آمن وفعّال، مما يحسن إدارة البنية التحتية الخاصة بك دون التأثير السلبي على خدمات التطبيق.

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر