Сеть kubernetes без магии: трассировка пакета на kind + Cilium
WrongName 16 минут назад Сеть kubernetes без магии: трассировка пакета на kind + Cilium Средний 8 мин 303 DevOps * Kubernetes * Туториал Из песочницы Все, кто работал c k8s, знают: что такое CNI, разбираются как его...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Вот важная новость с фронта ИИ: WrongName 16 минут назад Сеть kubernetes без магии: трассировка пакета на kind + Cilium Средний 8 мин 303 DevOps * Kubernetes * Туториал Из песочницы Все, кто работал c k8s, знают: что такое CNI, разбираются как его подключить и даже поверхностно могут понимать какой из предлагаемых на «рынке» интерфейсов лучше подходит под определенный кейс. Но между поверхностными абстракциями и пониманием того, что фактически происходит с пакетом пропасть. Пока кластер функционирует стабильно эта пропасть не мешает.
Она стреляет, когда начинается полтергейст: пакеты теряются между нодами, latency скачет через раз, NetworkPolicy «отказывается работать», но по всем кажущимся метрикам все зеленое. В этой статье я постараюсь пройти путь пакета руками:Минимальная теория перед стартомКак собрать кластер за пару минутНастройка Cilium CNIЧто такое бридж и eBPF-программыМежнодовый хоп — VXLANObservability: поймать свой пакет в HubbleБонус-загадкаЗачем это и куда дальшеВся практическая часть выполнялась на WSL2. Как известно в рамках WSL используется собственное ядро от Microsoft (в моем случае 6.
Технические детали
2-microsoft-standard-WSL2). Поэтому имеется ряд уникальных моментов с ним, которые будут раскрыты по ходу экспериментов. Минимальная теория перед стартомКонтейнер — это не виртуальная машина, это обычный linux процесс с урезанным «зрением» через неймспейсы: mount namespace прячет чужую файловую систему, pid namespace - чужие процессы и тд и тп.
Для темы текущего поста нужен только один network namespace. Из этого следует главный факт, без которого k8s сеть не читается. Под — это набор контейнеров, которые делят один network space (технически его держит служебный pause-контейнер, а остальные подключаются к нему.
Поэтому контейнеры одного пода видят друг дргуа по localhost, а у пода один IP на всех). Поэтому возникает следующий вопрос: как из него выбраться? Через veth-пару (виртуальный патчкорд с двумя концами).
Отраслевые последствия
Один конец — eth0, втыкается в nets пода, второй в nets ноды. Кто и как обрабатывает трафик на нодовом конце — это и есть зона ответственности CNI плагина. Как собрать кластер за пару минутНеобходим мультинодовый кластер, ведь самое интересное, что нам предстоит выясним именно межнодовый трафик.
Kind для такого эксперимента подходит идеально. /kind /usr/local/bin/kind kind version curl -LO " -L -s chmod +x kubectl sudo mv kubectl /usr/local/bin/kubectl kubectl version --client грабли №1. проверьте ядро, прежде чем создавать кластерБинари на месте, но перед kind create стоит потратить 10 сек на проверку ядра.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





