Cilium هو حل الشبكات ، والملاحظة ، والأمان مع لوحة بيانات قائمة على EBPF. يوفر شبكة بسيطة طبقة مسطحة 3 مع القدرة على امتداد مجموعات متعددة في وضع التوجيه أو التراكب الأصلي. يتم إدراك L7-protocol ويمكنه تطبيق سياسات الشبكة على L3-L7 باستخدام نموذج أمان قائم على الهوية يتم فصله عن معالجة الشبكة.
يقوم Cilium بتنفيذ موازنة التحميل الموزعة لحركة المرور بين القرون والخدمات الخارجية ، وهي قادرة على استبدال Kube-Proxy بالكامل ، باستخدام جداول التجزئة الفعالة في EBPF مما يسمح بمقياس غير محدود تقريبًا. كما يدعم الوظائف المتقدمة مثل Ingrated Ingress و Egress Gateway ، وإدارة النطاق الترددي وشبكة الخدمة ، ويوفر رؤية ومراقبة الشبكة والأمن العميقة.
تقنية Kernel Linux جديدة تسمى EBPF هي في أساس Cilium. وهو يدعم الإدراج الديناميكي لـ EBPF bytecode في kernel Linux في نقاط تكامل مختلفة مثل: الشبكة IO ، ومآخذ التطبيقات ، ونقاط التتبع لتنفيذ منطق الأمان والشبكات والرؤية. EBPF فعال للغاية ومرن. لمعرفة المزيد حول EBPF ، تفضل بزيارة EBPF.IO.
يحافظ مجتمع Cilium على إصدارات ثانوية طفيفة في آخر ثلاثة إصدارات Cilium الثانوية. إصدارات Cilium الأقدم مستقرة من الإصدارات البسيطة قبل ذلك تعتبر EOL.
للحصول على ترقيات إلى إصدارات صغيرة جديدة ، يرجى استشارة دليل ترقية Cilium.
المدرجة أدناه هي فروع الإصدار التي تم صيانتها بشكل نشط مع أحدث إصدار لها ، علامات سحب الصور المقابلة وملاحظات إصدارها:
v1.16 | 2024-11-14 | quay.io/cilium/cilium:v1.16.4 | ملاحظات الإصدار |
v1.15 | 2024-11-14 | quay.io/cilium/cilium:v1.15.11 | ملاحظات الإصدار |
v1.14 | 2024-11-14 | quay.io/cilium/cilium:v1.14.17 | ملاحظات الإصدار |
يتم توزيع صور Cilium لعمليات AMD64 و AARCH64.
بدءًا من الإصدار Cilium 1.13.0 ، تتضمن جميع الصور فاتورة للبرامج (SBOM). يتم إنشاء SBOM بتنسيق SPDX. يتوفر مزيد من المعلومات حول هذا على Cilium SBOM.
من أجل التنمية والاختبار الغرض ، ينشر مجتمع Cilium لقطات ومرشحين للإصدار المبكر (RC) وصور حاوية CI من الفرع الرئيسي. هذه الصور ليست للاستخدام في الإنتاج.
لاختبار ترقيات إلى إصدارات التطوير الجديدة ، يرجى الرجوع إلى أحدث بناء تطوير دليل ترقية Cilium.
المدرجة أدناه هي فروع للاختبار جنبا إلى جنب مع لقطاتها أو إصدارات RC ، وعلامات سحب الصور المقابلة وملاحظات إصدارها عند الاقتضاء:
رئيسي | يوميًا | quay.io/cilium/cilium-ci:latest | ن/أ |
v1.17.0-pre.2 | 2024-11-01 | quay.io/cilium/cilium:v1.17.0-pre.2 | ملاحظات مرشح ما قبل الإصدار |
القدرة على تأمين بروتوكولات التطبيق الحديثة مثل REST/HTTP و GRPC و KAFKA. تعمل جدران الحماية التقليدية في الطبقة 3 و 4. بروتوكول يعمل على منفذ معين إما موثوق به تمامًا أو محظور تمامًا. يوفر Cilium القدرة على التصفية على طلبات بروتوكول التطبيق الفردية مثل:
السماح لجميع طلبات HTTP باستخدام الطريقة GET
و PATH /public/.*
. رفض جميع الطلبات الأخرى.
السماح service1
بالإنتاج على موضوع Kafka topic1
و service2
للاستهلاك في topic1
. رفض جميع رسائل كافكا الأخرى.
طلب رأس HTTP X-Token: [0-9]+
ليكون موجودًا في جميع مكالمات REST.
راجع سياسة القسم طبقة 7 في وثائقنا للحصول على أحدث قائمة من البروتوكولات المدعومة والأمثلة حول كيفية استخدامها.
تعتمد التطبيقات الموزعة الحديثة على التقنيات مثل حاويات التطبيقات لتسهيل الرشاقة في النشر وتوسيع نطاق الطلب. يؤدي هذا إلى بدء عدد كبير من حاويات التطبيق في فترة زمنية قصيرة. جدران الحماية النموذجية للحاوية الآمنة عن طريق التصفية على عناوين IP المصدر ومنافذ الوجهة. يتطلب هذا المفهوم معالجة جدران الحماية على جميع الخوادم كلما بدأت حاوية في أي مكان في المجموعة.
من أجل تجنب هذا الموقف الذي يحد من النطاق ، يعين Cilium هوية أمنية لمجموعات من حاويات التطبيقات التي تشترك في سياسات أمنية متطابقة. ثم ترتبط الهوية بجميع حزم الشبكة المنبعثة من حاويات التطبيق ، مما يسمح بالتحقق من صحة الهوية في العقدة المستقبلة. يتم تنفيذ إدارة الهوية الأمنية باستخدام متجر القيمة الرئيسية.
الأمان القائم على التسمية هو أداة اختيار التحكم الداخلي في الوصول. من أجل تأمين الوصول من وإلى الخدمات الخارجية ، يتم دعم سياسات الأمان التقليدية القائمة على CIDR لكل من الدخول والخروج. يسمح ذلك بالحد من الوصول إلى حاويات التطبيق من وإلى نطاقات IP معينة.
تربط شبكة طبقة مسطحة بسيطة مع القدرة على امتداد مجموعات متعددة جميع حاويات التطبيق. يتم الحفاظ على تخصيص IP بسيطًا باستخدام محلات تخصيص نطاق المضيف. هذا يعني أنه يمكن لكل مضيف تخصيص IPS دون أي تنسيق بين المضيفين.
يتم دعم نماذج شبكات العقدة المتعددة التالية:
تراكب: شبكة افتراضية قائمة على التغليف تمتد على جميع المضيفين. حاليًا ، يتم خبز Vxlan و Geneve ولكن يمكن تمكين جميع تنسيقات التغليف التي تدعمها Linux.
عند استخدام هذا الوضع: يحتوي هذا الوضع على الحد الأدنى من متطلبات البنية التحتية والتكامل. إنه يعمل على أي بنية تحتية للشبكة تقريبًا حيث أن المتطلبات الوحيدة هو اتصال IP بين المضيفين والتي عادة ما يتم تقديمها بالفعل.
التوجيه الأصلي: استخدام جدول التوجيه العادي لمضيف Linux. يتعين على الشبكة أن تكون قادرة على توجيه عناوين IP لحاويات التطبيق.
متى تستخدم هذا الوضع: هذا الوضع مخصص للمستخدمين المتقدمين ويتطلب بعض الوعي بالبنية التحتية للشبكات الأساسية. هذا الوضع يعمل بشكل جيد مع:
شبكات IPv6 الأصلية
بالتزامن مع أجهزة توجيه الشبكة السحابية
إذا كنت تقوم بالفعل بتشغيل الشياطين التوجيه
يقوم Cilium بتنفيذ موازنة التحميل الموزعة لحركة المرور بين حاويات التطبيق والخدمات الخارجية ويمكنها استبدال مكونات تمامًا مثل kube-proxy. يتم تنفيذ موازنة التحميل في EBPF باستخدام علامات التجزئة الفعالة مما يسمح بمقياس غير محدود تقريبًا.
بالنسبة لموازنة التحميل من نوع من الشمال والجنوب ، يتم تحسين تطبيق EBPF من Cilium لتحقيق أقصى قدر على المضيف المصدر.
بالنسبة لموازنة التحميل من النوع إلى الشرق والغرب ، يقوم Cilium بإجراء ترجمة فعالة للخدمة إلى الخدمات مباشرة في طبقة مقبس Linux Kernel (على سبيل المثال في TCP Connect time) بحيث يمكن تجنب عمليات NAT لكل حزمة في الطبقات السفلية.
يقوم CiLium بتنفيذ إدارة عرض النطاق الترددي من خلال الحد الأقصى المعتمد على EDT (وقت المغادرة المبكر) مع EBPF لحركة حاويات الحاويات التي تغمر العقدة. يسمح ذلك بتقليل زمن اختلافات ذيل الإرسال بشكل كبير للتطبيقات وتجنب القفل تحت NIC متعدد الكواك مقارنةً بالمناهج التقليدية مثل HTB (دلو رمز التسلسل الهرمي) أو TBF (مرشح دلو الرمز المميز) كما هو مستخدم في البرنامج المساعد CNI النطاق الترددي ، على سبيل المثال.
إن القدرة على الحصول على الرؤية واستكشاف الأخطاء وإصلاحها أمر أساسي لتشغيل أي نظام موزع. بينما تعلمنا أن نحب أدوات مثل tcpdump
و ping
، وبينما سيجدون دائمًا مكانًا خاصًا في قلوبنا ، فإننا نسعى جاهدين لتوفير أدوات أفضل لاستكشاف الأخطاء وإصلاحها. وهذا يشمل الأدوات لتوفير:
مراقبة الأحداث مع البيانات الوصفية: عندما يتم إسقاط حزمة ، لا تقوم الأداة فقط بالإبلاغ عن مصدر IP للمصدر والوجهة للحزمة ، حيث توفر الأداة معلومات التسمية الكاملة لكل من المرسل والمستقبل بين الكثير من المعلومات الأخرى.
تصدير المقاييس عبر Prometheus: يتم تصدير المقاييس الرئيسية عبر Prometheus للتكامل مع لوحات المعلومات الحالية.
هابل: منصة قابلية للملاحظة مكتوبة خصيصًا لل cilium. يوفر خرائط التبعية للخدمة ، والمراقبة التشغيلية والتنبيه ، ووضوح التطبيق والأمان على أساس سجلات التدفق.
لماذا الكيليوم؟
ابدء
العمارة والمفاهيم
تثبيت cilium
الأسئلة المتداولة
المساهمة
Berkeley Packet Filter (BPF) هو مترجم Bytecode Linux kernel الذي تم تقديمه أصلاً إلى حزم شبكة Filter ، على سبيل المثال لمرشحات TCPDUMP والمقبس. تم إعادة صياغة مجموعة تعليمات BPF والهندسة المعمارية المحيطة بها بشكل كبير مع هياكل بيانات إضافية مثل جداول التجزئة والمصفوفات للحفاظ على الإجراءات الإضافية وكذلك الإجراءات الإضافية لدعم حزم الحزم ، إعادة التوجيه ، التغليف ، إلخ. لكي يتم كتابة البرامج في C وتجميعها في تعليمات BPF. يضمن Verifier in-kernel أن تكون برامج BPF آمنة للتشغيل وأن برنامج التحويل البرمجي JIT يحول تعليمات BPF Bytecode إلى CPU المحددة لفعالية التنفيذ الأصلي. يمكن تشغيل برامج BPF في العديد من نقاط التثبيت في kernel مثل الحزم الواردة ، والحزم الصادرة ، ومكالمات النظام ، و kprobes ، و uprobes ، و tracepoints ، إلخ.
يستمر BPF في التطور واكتساب قدرات إضافية مع كل إصدار جديد Linux. يقوم Cilium بتعزيز BPF لأداء تصفية مسار البيانات الأساسية ، والتشويش ، والمراقبة وإعادة التوجيه ، ويتطلب إمكانات BPF التي هي في أي إصدار Linux kernel 4.8.0 أو الأحدث (أحدث kernel Linux المستقر الحالي هو 4.14.x).
العديد من توزيعات Linux بما في ذلك Coreos و Debian و Docker's Linuxkit و Fedora و Opensuse و Ubuntu بالفعل يشحن إصدارات kernel> = 4.8.x. يمكنك التحقق من إصدار Linux kernel عن طريق تشغيل uname -a
. إذا لم تقم بعد بتشغيل نواة حديثة بما فيه الكفاية ، فتحقق من وثائق توزيع Linux الخاص بك حول كيفية تشغيل Linux kernel 4.9.x أو لاحقًا.
لقراءة ما يصل إلى إصدارات kernel اللازمة لتشغيل وقت تشغيل BPF ، راجع المتطلبات الأساسية.
XDP هي خطوة أخرى في التطور وتمكن من تشغيل نكهة معينة من برامج BPF من برنامج تشغيل الشبكة مع وصول مباشر إلى المخزن المؤقت DMA الخاص بالحزمة. هذا ، بحكم التعريف ، أقدم نقطة ممكنة في مكدس البرامج ، حيث يمكن إرفاق البرامج من أجل السماح بمعالج حزم قابلة للبرمجة وعالي الأداء في مسار بيانات شبكات Linux kernel.
يمكن العثور على مزيد من المعلومات حول BPF و XDP المستهدفة للمطورين في دليل مرجع BPF و XDP.
لمعرفة المزيد عن Cilium ، تلقِّل ملحقاته وحالات استخدامها حول Cilium و BPF نظرة على مزيد من القراءات.
انضم إلى قناة Clium Slack للدردشة مع مطوري Cilium ومستخدمي Cilium الآخرين. هذا مكان جيد للتعرف على الكيليوم ، وطرح الأسئلة ، ومشاركة خبراتك.
انظر مجموعات المصالح الخاصة للحصول على قائمة بجميع SIGs وأوقات اجتماعاتهم.
يتسكع مجتمع مطور Cilium على التكبير للدردشة. الجميع مرحب بهم.
أسبوعيًا ، الأربعاء ، الساعة 5:00 مساءً في أوروبا/زورخ الوقت (CET/CEST) ، عادة ما يعادل الساعة 8:00 صباحًا ، أو 11:00 صباحًا بالتوقيت الشرقي. ملاحظات الاجتماع ومعلومات التكبير
الأربعاء الثالث من كل شهر ، الساعة 9:00 صباحًا بتوقيت اليابان (JST). ملاحظات اجتماع APAC ومعلومات التكبير
نستضيف مجتمعًا أسبوعيًا على YouTube Livestream يسمى Echo والذي (فضفاض جدًا!) يرمز إلى ساعات عمل EBPF & Cilium. انضم إلينا على الهواء مباشرة ، أو اللحاق بالحلقات السابقة ، أو توجه إلى Echo Repo وأخبرنا أفكارك بالمواضيع التي يجب أن نغطيها.
يخضع مشروع Cilium لمجموعة من المشرفين والالتزامات. كيف يتم اختيارهم والحكم في وثيقة الحوكمة لدينا.
يمكن العثور على قائمة من المتبنين لمشروع Cilium الذين ينشرونه في الإنتاج ، وحالات الاستخدام الخاصة بهم ، في ملفات الملفات.
يحافظ Cilium على خريطة طريق عامة. إنه يعطي رؤية رفيعة المستوى للأولويات الرئيسية للمشروع ، ونضج الميزات والمشاريع المختلفة ، وكيفية التأثير على اتجاه المشروع.
يتم ترخيص مكونات مساحة مستخدم Cilium بموجب ترخيص Apache ، الإصدار 2.0. يتم تخصيص قوالب رمز BPF بموجب ترخيص عام عام ، الإصدار 2.0 (فقط) وترخيص BSD من البلاغة (يمكنك استخدام شروط أي ترخيص ، في خيارك).