Сетевая политика в Куберне под капотом - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть сетевая политика, созданная и реализованная в соответствии с https://github.com/ahmetb/kubernetes-network-policy-recipes, и ее работающий метод, однако я хотел бы понять, как именно это реализуется в серверной части, как сетевая политика разрешает или запрещает траффи c, изменяя iptables? какие компоненты kubernetes участвуют в реализации этого?

Ответы [ 2 ]

1 голос
/ 27 апреля 2020

«Это зависит». Это зависит от того, какой контроллер на самом деле выполняет настройку, которая обычно (но не всегда) является частью вашего плагина CNI.

Наиболее распространенная реализация - это Calico Felix daemon , который поддерживает несколько бэкэндов, но Iptables является распространенным. Другие плагины используют сетевые программы eBPF или другие подсистемы брандмауэра для аналогичного эффекта.

1 голос
/ 27 апреля 2020

Сетевая политика реализуется с помощью сетевых плагинов (например, ситца), чаще всего путем установки Linux правил Iptables Netfilter на узлах Kubernetes.

Из документов здесь

В подходе Calico IP-пакеты в рабочую нагрузку или из нее направляются и пересылаются через таблицу маршрутизации Linux и инфраструктуру iptables на узле рабочей нагрузки. Для рабочей нагрузки, которая отправляет пакеты, Calico гарантирует, что хост всегда будет возвращаться как адрес MA C следующего перехода независимо от того, какую маршрутизацию может настроить сама рабочая нагрузка. Для пакетов, адресованных рабочей нагрузке, последний IP-прыжок состоит из хоста рабочей нагрузки назначения и самой рабочей нагрузки

calico data path

...