Skip to main content

Command Palette

Search for a command to run...

ip-masq-agent

IP Masquerade Agent

Updated
•1 min read•View as Markdown

Агент, конфигурирующий правила iptables таким образом, чтобы ip адрес пода скрывался за адресом той ноды кластера, на которой этот под находится. Т.е. обеспечивает маскарадинг ip адресов подов.

Особенности.

  • Создаётся с помощью DaemonSet и присутствует на каждой ноде кластера;

  • Подставляет адрес ноды когда обращение идёт за пределы кластера;

  • Трафик к адресам 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16 не будет подпадать под маскарадинг.

Пример конфигурации.

apiVersion: v1
data:
  config: "nonMasqueradeCIDRs:\n  - 10.16.128.0/17\n  \n\nresyncInterval: 60s\n\n"
kind: ConfigMap

Конфигурационный файл агента содержит несколько параметров.

  • nonMasqueradeCIDRs. Диапазон CIDR, не подлежащих маскарадингу;

  • resyncInterval. Интервал времени в течении которого агент пытается загрузить конфиг с диска.
    Проверяется файл /etc/config/ip-masq-agent;

  • masqLinkLocal. Булево значение. Показывает будет ли маскарадинг к адресам 169.254.0.0/16. По дефолту стоит false.

Посмотреть правила в iptables, связанные с агентом, можно так:

iptables -t nat -L IP-MASQ-AGENT

Установка агента.

kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/ip-masq-agent/master/ip-masq-agent.yaml

В конфигурационном файле присутствует label. Это справедливо для облака YC.
addonmanager.kubernetes.io/mode: EnsureExists
Следовательно изменять конфигурацию файла можно. И она не откатится назад.

Зайти внутрь контейнера агента можно так:
crictl exec -ti <containerID> /bin/sh

В YC используется версия агента - 2.5.0.
Последняя версия на момент написания статьи - 2.9.3.

Полезные ссылки.

https://kubernetes.io/docs/tasks/administer-cluster/ip-masq-agent/

GitHUB:
https://github.com/kubernetes-sigs/ip-masq-agent?ysclid=ll2q7tfvz7468965718