ip-masq-agent

IP Masquerade Agent

·

1 min read

Агент, конфигурирующий правила 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