Пакеты могут перемещаться между узлами, службами и модулями до достижения конечного пункта назначения.
Вся внутрикластерная маршрутизация (узел-узел, модуль-модуль, модуль-служба, модуль). -у-сервису, сервис-к-моду, под-к-узлу, от узла к стручку и т. д. c) в kubernetes выполняется:
- CNI
- алгоритм балансировки нагрузки
- kube-proxy
- iptables.
Пакетный маршрут в k8s также зависит от многих вещей, таких как нагрузка в кластере, нагрузка на узел, аффинность / анти-аффинность правила, nodeSelectors, портит / допуски, автомасштабирование, количество реплик pod и т. д. c.
Внутри-кластерная маршрутизация прозрачна для маршрутизатора, и в идеале пользователю не нужно знать об этом, если только существуют проблемы с сетью для отладки.
Выполнение sudo iptables -L -n -v
на любом узле k8s показывает низкоуровневые правила и цепочки iptables, используемые для пересылки пакетов.