kube-proxy — компонент Kubernetes, который на каждой ноде реализует сервисы (Service), балансировку нагрузки и перенаправление трафика на поды через режимы iptables, ipvs или userspace.
Cilium — мощный CNI-плагин на базе eBPF и его Network Policies для L3/L4/L7-фильтрации.
🧑💻 Соединим их вместе
Cilium способен полностью заменить kube-proxy, взяв на себя всю обработку Kubernetes-сервисов (ClusterIP, NodePort, LoadBalancer, externalIPs, hostPort) напрямую в ядре Linux.
🤓 Как это работает под капотом
Cilium использует eBPF-программы, которые загружаются в ядро и обрабатывают пакеты на ранних этапах сетевого стека.
— Вместо генерации тысяч правил в iptables (линейный просмотр) или даже IPVS Cilium хранит маппинги сервисов и эндпоинтов в BPF hash-таблицах;
— При создании/изменении Service Cilium-агент обновляет BPF-мапы. Трафик к ClusterIP мгновенно транслируется в IP пода с балансировкой.
— Direct Server Return (DSR) для снижения latency (ответы идут напрямую от пода к клиенту, минуя лишние хопы)
🙂 Преимущества замены
✔️ Производительность — ниже latency, выше пропускная способность, значительно меньше потребление CPU (в крупных кластерах экономия 25–40 % на сетевой обработке). Не деградирует при росте количества сервисов.
✔️ Масштабируемость — тысячи сервисов без проблем с длинными цепочками правил.
✔️ Упрощение стека — можно полностью удалить kube-proxy (или не устанавливать его при развертывании кластера). Меньше компонентов — проще отладка и меньше точек отказа.
✔️ Интеграция с возможностями Cilium — политики безопасности, Hubble-мониторинг и L7-фильтрация работают в едином eBPF-пространстве.
Это особенно выгодно в production-кластерах с высокой сетевой нагрузкой или большим количеством микросервисов.
Как включить kube-proxy replacement
При установке Cilium через Helm:
kubeProxyReplacement: true
k8sServiceHost: <IP API-сервера>
k8sServicePort: <порт API-сервера>
# Дополнительно для полного функционала:
nodePort:
enabled: true
externalIPs:
enabled: true
hostPort:
enabled: true
bpf:
masquerade: true
Замена kube-proxy на eBPF-реализацию в Cilium — это логичный шаг для тех, кто уже использует Cilium как CNI. Кластер становится быстрее, проще и современнее: меньше оверхеда, лучше наблюдаемость и единый механизм для сети и безопасности.
#заметкиИнженера
