Что iptables знает о стручках? - PullRequest
       22

Что iptables знает о стручках?

0 голосов
/ 17 февраля 2020

Допустим, у нас есть 2 узла в кластере.

Node A имеет 1 реплику модуля, Node B имеет 2 реплики. Согласно этому сообщению (видео YouTube с меткой времени) от инженеров Google Cloud, запрос, перенаправленный на Node A, может быть перенаправлен на Node B на iptables, который находится внутри Node A. У меня есть несколько вопросов относительно этого поведения:

  • Какая информация iptables из Node A знает о копиях капсулы вне ее? Как он узнает, куда отправить траффи c?

  • Может ли быть так, что iptables из Node B перенаправляет этот запрос на Node C? Если это так, то будет ли исходящий трафик c go возвращаться к Node B -> Node A -> Клиенту?

Ответы [ 2 ]

2 голосов
/ 17 февраля 2020

Я думаю, вы можете смешивать две подсистемы, сервисные прокси и CNI. Во-первых, CNI - это система на основе плагинов, которая устанавливает правила маршрутизации для всех ваших узлов, чтобы сеть выглядела плоской. IP-адрес модуля будет работать как обычно с любого узла. Как именно это происходит, зависит от плагина, Calico использует BGP между узлами. Тогда есть сервисные прокси, обычно реализуемые с использованием iptables, хотя и несколько подключаемые. Они определяют балансировку нагрузки службы IP -> IP конечной точки (читай: IP-адрес). Но фактическая маршрутизация обрабатывается независимо от того, какой ваш плагин CNI настроен. Есть много специальных режимов и случаев, но это базовый обзор c.

0 голосов
/ 18 февраля 2020

Пакеты могут перемещаться между узлами, службами и модулями до достижения конечного пункта назначения.

Вся внутрикластерная маршрутизация (узел-узел, модуль-модуль, модуль-служба, модуль). -у-сервису, сервис-к-моду, под-к-узлу, от узла к стручку и т. д. c) в kubernetes выполняется:

  • CNI
  • алгоритм балансировки нагрузки
  • kube-proxy
  • iptables.

Пакетный маршрут в k8s также зависит от многих вещей, таких как нагрузка в кластере, нагрузка на узел, аффинность / анти-аффинность правила, nodeSelectors, портит / допуски, автомасштабирование, количество реплик pod и т. д. c.

Внутри-кластерная маршрутизация прозрачна для маршрутизатора, и в идеале пользователю не нужно знать об этом, если только существуют проблемы с сетью для отладки.

Выполнение sudo iptables -L -n -v на любом узле k8s показывает низкоуровневые правила и цепочки iptables, используемые для пересылки пакетов.

...