惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
博客园 - 三生石上(FineUI控件)
S
Securelist
U
Unit 42
The Cloudflare Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Simon Willison's Weblog
Simon Willison's Weblog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog
T
Tenable Blog
The Hacker News
The Hacker News
The Register - Security
The Register - Security
IT之家
IT之家
博客园 - 【当耐特】
Spread Privacy
Spread Privacy
P
Privacy & Cybersecurity Law Blog
博客园_首页
T
Tailwind CSS Blog
人人都是产品经理
人人都是产品经理
C
Cybersecurity and Infrastructure Security Agency CISA
Know Your Adversary
Know Your Adversary
NISL@THU
NISL@THU
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
T
Tor Project blog
C
CERT Recently Published Vulnerability Notes
Apple Machine Learning Research
Apple Machine Learning Research
Stack Overflow Blog
Stack Overflow Blog
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
V
Vulnerabilities – Threatpost
A
Arctic Wolf
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V
V2EX
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
Cyberwarzone
Cyberwarzone
V
Visual Studio Blog
月光博客
月光博客
爱范儿
爱范儿
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
美团技术团队
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Heimdal Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как eBPF меняет правила безопасности и наблюдаемости в Kubernetes
Andrey_Biryukov · 2026-06-19 · via Все публикации подряд на Хабре

Сложный

7 мин

10

Привет, Хабр! Меня зовут Андрей Бирюков. Я — независимый эксперт в области ИТ и ИБ, преподаю в учебных центрах и пишу статьи и книги. Сейчас никого уже не удивишь фразой «мы используем Kubernetes в продуктивной среде». Но, удивляет другое: как многие до сих пор мирятся с сетевым стеком, собранным на коленке из iptables и молитв. Пока вы спите, ваш kube‑proxy методично перебирает цепочки правил, словно архивариус в пыльном подвале. А ведь на дворе — эра eBPF, когда сетевая магия творится прямо в ядре, без лишних телодвижений и копирования данных.

В этой статье мы без сантиментов разберем, почему классический подход с iptables рассыпается при первых признаках нагрузки, как eBPF с XDP переписывает правила игры и почему даже в 2026 году не все так однозначно с «бесплатным ускорением».

Почему iptables больше не тянет

Давайте сразу к цифрам. При сравнении Flannel (overlay), Calico (routing) и Cilium (eBPF), был обнаружен неприятный факт: традиционные решения, построенные на iptables или IPVS, вносят измеримую задержку даже при средних нагрузках. Казалось бы, мелочь. Но когда у вас микросервисная архитектура, где один запрос проходит через 10, 20, 50 сервисов — эта мелочь превращается в секунды ожидания для пользователя.

Причина торможения кроется, в том, что классический kube‑proxy в режиме iptables работает по принципу линейного перебора. Каждый пакет, пришедший на Service IP, должен пройти через цепочку правил, пока не найдет свое соответствие. Если у вас тысяча сервисов (а в нормальном кластере это не предел), то приходящий пакет «стучится» в каждое правило, пока не дойдет до нужного. Сложность — O(n), где n — количество сервисов. Это как искать книгу в библиотеке, где каталог не систематизирован, а просто перечислены все книги подряд.

Есть еще режим IPVS, он использует хеш‑таблицы и работает быстрее, но даже он не решает проблему полностью. При высоких нагрузках и частом обновлении правил (например, при горизонтальном масштабировании подов) накладные расходы существенно растут.

Компания Isovalent (создатели Cilium) приводит такие цифры: при тестировании TCP Connect/Request/Response (CRR) eBPF на порядок обгоняет iptables‑режим kube‑proxy, причем разрыв увеличивается пропорционально числу сервисов. Чем больше ваш кластер — тем больнее вы ощущаете задержки kube‑proxy. 

eBPF и XDP: когда ядро становится программируемым

Теперь — о прекрасном, то есть о eBPF (Extended Berkeley Packet Filter). Забудьте всё, что вы знали о старом добром BPF, который использовался для сниффинга пакетов. Современный eBPF — это виртуальная машина внутри ядра Linux, позволяющая выполнять программы в безопасной песочнице в ответ на системные события.

Что это значит на практике? Раньше, чтобы добавить какую‑то логику в обработку пакетов, нужно было либо писать модуль ядра (рискованно, сложно, требует пересборки), либо поднимать прокси в user‑space (медленно из‑за копирования данных). eBPF позволяет загрузить программу прямо в работающее ядро, причем верификатор проверит, что эта программа не положит систему (нет бесконечных циклов, нет опасных операций).

Но самое интересное — это XDP (eXpress Data Path). XDP позволяет привязать eBPF‑программу к самому раннему этапу обработки пакета — прямо к драйверу сетевой карты, до того, как пакет вообще попал в сетевой стек ядра. Представьте: пакет только что прибыл на NIC, еще не было ни одного прерывания (interrupt), ни одного переключения контекста — а ваша программа уже решила, что с ним делать. DROP? PASS дальше в стек? Перенаправить (REDIRECT) сразу в другой интерфейс? Всё это на скорости, измеряемой в миллионах пакетов в секунду.

Некоторые продвинутые сетевые карты поддерживают даже offload XDP прямо на железо, то есть программа выполняется вообще без загрузки CPU. Но это уже уровень хардварной обработки.

Cilium: Хаббл, карты и никакого kube‑proxy

Cilium — это не просто CNI‑плагин, а целая экосистема вокруг eBPF. Архитектурно Cilium работает так: вместо того, чтобы поддерживать огромные цепочки iptables, он хранит правила маршрутизации и безопасности в BPF maps — специальных хеш‑таблицах внутри ядра. Сложность поиска — O(1). Пакет, пришедший на Service IP (ClusterIP), обращается к карте, мгновенно находит IP эндпоинта (пода) и направляется напрямую, минуя весь зоопарк NAT и маршрутизации.

Более того, Cilium может полностью заменить kube‑proxy. В режиме kube‑proxy replacement он берет на себя всю логику сервисов, а стандартный компонент kube‑proxy отключается. Это упрощает отладку (не нужно копаться в iptables) и убирает накладные расходы.

Как это выглядит на уровне кода? В своем докладе на FOSDEM инженеры Isovalent демонстрировали концепцию: eBPF‑программа, привязанная к XDP‑хуку на интерфейсе, может перехватить пакет, залезть в BPF‑карту с маппингом «Service IP → Pod IP» и отправить пакет прямиком в сетевой неймспейс пода через veth‑пару, даже не заходя в полный сетевой стек хоста.

И это не только про скорость. Hubble — обсервабилти‑слой Cilium — использует те же eBPF‑хуки для сбора метрик, flow‑логов и даже security‑инсайтов без необходимости ставить sidecar‑контейнеры или разворачивать дополнительных агентов.

Что там с безопасностью на сокетах?

Традиционные NetworkPolicy в Kubernetes (например, Calico) работают на L3/L4 и используют фильтрацию в ядре, часто на уровне iptables. Это нормально, но имеет свои ограничения: вы не можете сказать «заблокировать HTTP POST на /admin», только «заблокировать TCP порт 443». Для L7-политик обычно нужен сервис‑меш (Istio, Linkerd) с sidecar‑прокси, который стоит между сервисами.

Cilium реализует L7-политики через eBPF, поднимаясь на уровень протокола. Он может инспектировать HTTP‑заголовки, gRPC‑методы, Kafka‑топики, и всё это прямо внутри ядра, без выноса в user‑space. Это дает огромный прирост производительности по сравнению с классическими прокси.

Но, внимание, подвох! Последние исследования 2025–2026 годов показывают, что L7-обработка eBPF — это не серебряная пуля. В свежей работе IEEE Access (2025) сравнивали производительность CNI при включенных L7-политиках.

Результат: eBPF‑шный Cilium на L7 просаживает throughput с 8.9 Gbps до жалких 94 Mbps. Да, вы не ослышались. Потому что анализ HTTP/1.1 или gRPC внутри ядра — это сложно. Ядро не умеет так же эффективно парсить текстовые протоколы, как это делает Envoy в user‑space.

При тестировании mTLS‑оверхеда в сервис‑меше Cilium показал 99% оверхед (из‑за копирования контекстов ядро → user‑space), в то время как Istio Ambient с user‑space прокси — всего 8%. Но при этом на чистом L4 (без глубокой инспекции) и при большом количестве сервисов (>500) eBPF‑решения выигрывают вчистую.

Когда копать глубже: скрытые грабли AF_XDP

Для сценариев, где XDP не хватает (например, нужна сложная обработка, не влезающая в лимиты eBPF по размеру или сложности кода), существует AF_XDP. Этот механизм позволяет переслать пакет из XDP в user‑space через специальный сокет с нулевым копированием (zero‑copy).

Казалось бы, идеально: быстрый путь в ядре плюс гибкость user‑space.

Но и здесь есть нюанс. Если трафик должен уйти локальному приложению в контейнере, то AF_XDP требует забавного маневра: пакет из UMEM (память, разделяемая между ядром и user‑space) нужно скопировать в veth или другой интерфейс, чтобы доставить в сетевой стек и, собственно, в под.

В итоге вместо одной копии мы получаем две, или работаем в режиме copy‑mode, теряя весь профит. В тесте с memcached XDP (ядро) обогнал AF_XDP на 42% по пропускной способности. Так что, если ваш трафик локальный, XDP предпочтительнее.

Итоговая матрица выбора

Так что же выбрать для кластера? Если у вас небольшой кластер (до 500 нод) и примитивный L4-трафик — отключите kube‑proxy, поставьте Cilium в режиме прямого маршрутизации (Direct Routing) и наслаждайтесь жизнью. Вы получите снижение задержек на десятки миллисекунд.

Если у вас огромный кластер (тысячи нод) или вам нужна L7-фильтрация / mTLS по‑настоящему эффективно — присмотритесь к гибридным решениям или вообще к user‑space сеткам вроде Istio Ambient. Исследования показывают, что Istio лучше держит частую смену подов, чем распределенные агенты Cilium, давая выигрыш по throughput в 56% при одном и том же железе. Итак, eBPF — это великая технология, но она не отменяет законов физики и не делает парсинг HTTP бесплатным.

И последний совет: не ленитесь тестировать на своих нагрузках. Один инженер перевел прод на Cilium с включенной L7-политикой и получил падение RPS в 10 раз. Другой отключил kube‑proxy, настроил XDP для DDoS‑защиты (через те же eBPF‑программы на драйвере NIC) и его API‑шлюз начал выдерживать на 40% больше трафика.

То есть, сетевая магия требует понимания. И, надеюсь, эта статья сделала вас чуть ближе к тому, чтобы превратить ваш сетевой шторм в легкий бриз.

Тема eBPF быстро выводит разговор о Kubernetes за пределы привычного «настроили кластер — значит, всё работает». Чтобы глубже разобраться в безопасности, наблюдаемости и эксплуатации инфраструктуры, можно присмотреться к открытым урокам OTUS. Они бесплатно проходят в рамках онлайн‑курсов, и на них можно познакомиться с преподавателями и задать вопросы.

  • 24 июня, 20:00. «Инцидент‑менеджмент в SRE. Как быстро находить, устранять и предотвращать сбои в системе». Записаться

  • 1 июля, 20:00. «Классические методы перехвата управления в Linux». Записаться

Больше бесплатных уроков — в дайджесте.

Статьи по теме: