فناوری · شبکه
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 به نسخهٔ هستهٔ لینوکس حساس است. پیشنیازها در سند الزامات ذکر شدهاند.
اینها را هم ببینید
این را روی زیرساخت خودتان ببینید.
همین مؤلفه را در کلاستر شما پیکربندی میکنیم و نشان میدهیم.