June 28, 2026
ليه دايماً بنختار عدد فردي للـ Control Plane في Kubernetes؟ 🤔☸️
هل عمرك فكرت ليه بيفضل وإحنا بنـ Design a Kubernetes Cluster نختار عدد فردي (3, 5, 7) للـ Control Plane؟ 🤔☸️
السر كله في عقل الكلاستر اللي هو في حالتنا الـ etcd اللي متخزن فيه كل الداتا، وفي Algorithm اسمه Raft consensus algorithm ومفهوم النصاب القانوني/Quorum.

🧠 إيه هو الـ Raft Algorithm؟
طيب قبل ما نتكلم أكتر عن استخدامه في Kubernetes، خلينا نعرف أكتر عن الـ Algorithm ده.. وهل Raft اختراع خاص بـ Kubernetes؟
الإجابة لأ, ده Algorithm نشرت ورقته البحثية الرسمية سنة 2014 في جامعة ستانفورد لحل مشكلة اسمها Consensus in distributed systems.
طيب إيه علاقته بـ Kubernetes؟ Kubernetes بيستخدم داتابيز etcd المبنية على الـ Algorithm ده وفي برامج تانية بتستخدمها لضمان استقرار السيرفرات زي: Kafka و Consul.
في Kubernetes عشان الـ etcd ياخد أي قرار زي إنه يسجل إن في Pod جديد اتكريت، لازم أغلبية السيرفرات توافق لو مفيش أغلبية الـ etcd بيوقف شغل تماماً لحماية البيانات من التلف وعدم الاتساق/Data Inconsistency.
🧮 معادلة الأغلبية (النصاب القانوني)
معادلة الأغلبية بسيطة جداً: (عدد السيرفرات ÷ 2) + 1
تعالوا نحسبها لـ 3 سيرفرات ولـ 4 سيرفرات عشان نشوف المفاجأة:
🟢 حالة الـ 3 Nodes: > الأغلبية المطلوبة هي (2) يعني لو سيرفر وقع الاتنين الباقيين شغالين وبيمثلوا الأغلبية والكلاستر هيكمل شغل عادي وقادرين نتحمل خسارة 1 سيرفر.
🔴 حالة الـ 4 Nodes: > الأغلبية المطلوبة هي (3) لو سيرفر وقع التلاتة الباقيين هيمشوا الشغل لكن لو سيرفرين وقعوا هيتبقى 2 ودول مش بيمثلوا الأغلبية (3) فالكلاستر هيقف يعني بردو قادرين نتحمل خسارة 1 سيرفر فقط.
الفكرة هنا إن الـ 4 Nodes مش بتديك أي نسبة أمان زيادة عن الـ 3 Nodes، لكنها بتكلف الشركة تمن سيرفر رابع على الفاضي غير إن الأعداد الزوجية بتعمل مشكلة شبكات اسمها Split Brain لو الـ 4 نودز اتقسموا 2 و 2 بسبب مشكلة في الشبكة محدش هيقدر يوصل للأغلبية والكلاستر هيتشل تماما علشان كده دايما بيفضل نختار عدد فردي.
👷♂️ طب هل قاعدة العدد الفردي بتطبق على الـ Worker Nodes؟
الإجابة لأ, عشان منتلخبطش ممكن نتخيل إن الكلاستر ده دولة:
🏛️ الـ Control Plane: هما مجلس الشعب اللي بياخدوا القرارات وبيصوتوا عليها لازم عددهم يبقى فردي عشان دايماً يبقى في أغلبية وتصويتهم ينجح.
🏗️ الـ Worker Nodes: هما العمال اللي بينفذوا الأوامر وبس العمال مبيصوتوش على قرارات علشان كده عددهم ممكن يكون فردي أو زوجي 1, 4, أو حتى 5000 مش هتفرق أي حاجة في استقرار الـ
etcd.
👤 طب إيه وضع الكلاستر اللي فيه Node واحدة (Single Node)؟
بتطبيق قاعدة "النصاب القانوني": (1 ÷ 2) + 1 = 1.
النتيجة: الكلاستر هيشتغل لأن السيرفر الوحيد ده ديكتاتور بياخد القرار وبيوافق عليه لوحده! لكن العيب إن نسبة التسامح مع الأخطاء/
Fault Toleranceبتساوي صفر لو السيرفر وقع الكلاستر كله مات علشان كده النوع ده بيستخدم في حاجات تدريب مثلا ومش بيفضل يستخدم في بيئات العمل الحقيقية/Production.