Используя eBPF (extended Berkeley Packet Filter), Cilium реализует расширенные сетевые политики Kubernetes, фильтруя трафик на уровне ядра Linux. Этот подход исключает оверхед iptables/nftables и обеспечивает высокую производительность с точным контролем трафика.
💬 Уровни контроля
L3/L4 (IP/порт) + L7 для поддерживаемых протоколов (HTTP/HTTP/2, gRPC) через встроенный Envoy.
💬 Как это работает?
Cilium генерирует eBPF-программы на основе YAML-политик и загружает их в ядро. Политики применяются к подам (и/или узлам) через селекторы.
💬 Зачем это нужно?
Сегментация трафика, блокировка нежелательных подключений, построение моделей Zero Trust и выполнение требований комплаенса. По умолчанию поды в Kubernetes общаются свободно, что опасно в мультиарендных кластерах.
Примеры
📍Deny-all в namespace — запретить весь входящий и исходящий трафик:
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: deny-all
namespace: default
spec:
endpointSelector: {}
ingressDeny:
- {}
egressDeny:
- {}
📍 Заблокировать вход на порт 6379 (Redis) для подов app=redis:
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: block-redis-ingress-6379
namespace: default
spec:
endpointSelector:
matchLabels:
app: redis
ingressDeny:
- toPorts:
- ports:
- port: "6379"
protocol: TCP
Cilium превращает сетевую безопасность из рутинной обязанности в рабочий инструмент для построения Zero-Trust-архитектур в Kubernetes. Must-have там, где важны безопасность и производительность.
#заметкиИнженера
