3️⃣مقاله سوم: Cilium چگونه ارتباطات Kubernetes را کنترل میکند؟
این Kubernetes برای مدیریت ارتباطات شبکهای به یک افزونه شبکه یا CNI نیاز دارد. Cilium یکی از پیشرفتهترین راهکارهای این حوزه است که با استفاده از فناوری eBPF، ارتباطات میان Podها، Nodeها و سرویسها را کنترل و مشاهده میکند.
وCilium میتواند Network Policyهای استاندارد Kubernetes و سیاستهای پیشرفتهتری مانند CiliumNetworkPolicy را اجرا کند. این سیاستها تعیین میکنند چه مبدأیی اجازه دارد به چه مقصدی، روی کدام Port و Protocol متصل شود. در موارد پیشرفتهتر، کنترل ارتباطات تا لایه کاربرد و پروتکلهایی مانند HTTP و DNS نیز امکانپذیر است.
وCilium معمولاً Podها را براساس Label و Security Identity شناسایی میکند. برای مثال، بهجای وابستگی به IP متغیر یک Pod، میتوان گفت هر Pod دارای Label برابر "frontend" فقط به Podهای "api" دسترسی داشته باشد.
این انعطاف بسیار ارزشمند است، اما پیچیدگی نیز ایجاد میکند. ممکن است یک Policy دسترسی را محدود و Policy دیگری همان ارتباط را از مسیر متفاوتی مجاز کند. همچنین تغییر Label یا اضافهشدن یک Workload جدید میتواند نتیجه نهایی را تغییر دهد.
ابزار Hubble در اکوسیستم Cilium نشان میدهد چه ترافیکی واقعاً میان اجزای Cluster ردوبدل شده است. بااینحال، مشاهده ترافیک گذشته همیشه پاسخ نمیدهد که براساس Policyها چه ارتباطاتی بالقوه مجازند. برای پاسخ به این سؤال باید روابط مجاز را مانند یک نقشه جامع تحلیل کنیم؛ نیازی که زمینه استفاده از CiliumHound را ایجاد میکند.