Dezkubeدزکوب

فناوری · شبکه

Cilium در دزکوب

شبکهٔ کلاستر، فایروال و متعادل‌سازی بار با eBPF

نسخهٔ پین‌شده
⟦V_CILIUM⟧
لایسنس
Apache 2.0
گروه در استک
شبکه

Cilium چیست

افزونهٔ شبکهٔ Kubernetes که به‌جای iptables از eBPF در هستهٔ لینوکس استفاده می‌کند. یعنی مسیر داده در سطح هسته و بدون زنجیره‌های طولانی قواعد پردازش می‌شود.

چرا این را انتخاب کردیم

گزینه‌هایی که بررسی و رد شدند، و دلیل رد هر کدام
گزینه‌ای که رد شدچرا نه
افزونهٔ شبکهٔ ساده (مبتنی بر iptables)با رشد تعداد سرویس، زنجیرهٔ قواعد بزرگ و کند می‌شود؛ و سیاست L7 ندارد.
مِش سرویس جداگانهیک لایهٔ اضافه، یک sidecar به‌ازای هر پاد، و پیچیدگی عملیاتی.
دلیل تعیین‌کننده

Cilium هم‌زمان شبکه، فایروال L3/L4/L7، جایگزین kube-proxy، پیاده‌سازی Gateway API و دید جریان (Hubble) را می‌دهد — یعنی یک مؤلفه به‌جای چهار تا.

ما دقیقاً چطور استفاده‌اش می‌کنیم

  • جایگزینی kube-proxy فعال است؛ kube-proxy اصلاً نصب نمی‌شود.
  • default-deny روی هر محیط، با استثنای صریح برای DNS — بدون آن هیچ چیزی نامی را resolve نمی‌کند.
  • سیاست L7 برای محدودسازی بر اساس مسیر و متد HTTP.
  • پیکربندی Envoy از طریق Cilium برای WAF و محدودیت نرخ — هر دو در یک پیکربندی، چون دو پیکربندی روی یک سرویس برای جای زنجیره با هم مسابقه می‌دهند.
  • Hubble برای دید جریان ترافیک در لایهٔ رصدپذیری.

برای شما چه چیزی عوض می‌شود

  • فایروال در سطح شبکهٔ فیزیکیسیاست در سطح بار کاری، نه IP
  • حرکت جانبی مهاجم آسانdefault-deny بین همهٔ بارهای کاری
  • بدون دید شرق-غربنمودار جریان واقعی

مرزها و محدودیت‌ها

این سکشن در هر صفحهٔ فناوری اجباری است. هر ابزاری مرزی دارد؛ صفحه‌ای که مرزش را نگوید، بقیه‌اش هم قابل اتکا نیست.

  • «خالی» یعنی «همه». فهرست خالی در سیاست، به‌معنای اجازه به همه تفسیر می‌شود. دزکوب این حالت را رد می‌کند.
  • path یک عبارت باقاعده است، نه یک مسیر. نقطه در آن هر نویسه‌ای را می‌گیرد و ستاره wildcard نیست. دزکوب هر مسیر را escape و لنگر می‌کند.
  • eBPF به نسخهٔ هستهٔ لینوکس حساس است. پیش‌نیازها در سند الزامات ذکر شده‌اند.

این را روی زیرساخت خودتان ببینید.

همین مؤلفه را در کلاستر شما پیکربندی می‌کنیم و نشان می‌دهیم.