Мне нужно настроить статический IP-адрес в одном из моих POD, поскольку для удаленной службы (за пределами моего кластера) требуется белый список доверенных IP-адресов.
Я следовал документации, предоставленной Google:
https://cloud.google.com/nat/docs/overview?hl=es-419
https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent
Но при попытке настроить исходящий трафик с помощью облачной службы Google NAT в моем кластере GKE плюс маскировка с использованием ip-masq-агент
Я начинаю получать тайм-ауты и проблемы при доступе к удаленным службам за пределами кластера.
Мой кластер находится в версии 1.19.10-гкэ.1600
.
Я пробовал эти файлы конфигурации со следующими результатами:
интервал повторной синхронизации: 60 сек.
Результат:
Сеть IP-MASQ (2 ссылки)
целевая защита выбор источника назначения
RETURN all -- везде 10.0.0.0/8 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 172.16.0.0/12 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 192.168.0.0/16 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
MASQUERADE all -- везде где угодно /* ip-masq-agent: исходящий трафик является суб
объект для MASQUERADE (должен быть последним в цепочке) */
Службы продолжают использовать неправильный IP.
интервал повторной синхронизации: 60 сек.
masqLinkLocal: правда
Сеть IP-MASQ (2 ссылки)
целевая защита выбор источника назначения
RETURN all -- везде 169.254.0.0/16 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 10.0.0.0/8 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 172.16.0.0/12 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 192.168.0.0/16 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
MASQUERADE all -- везде где угодно /* ip-masq-agent: исходящий трафик является суб
объект для MASQUERADE (должен быть последним в цепочке) */
Тот же эффект, мои внешние службы получают неправильный IP.
nonMasqueradeCIDR:
- 0.0.0.0/0
интервал повторной синхронизации: 60 сек.
masqLinkLocal: правда
Сеть IP-MASQ (2 ссылки)
целевая защита выбор источника назначения
RETURN all -- везде где угодно /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
MASQUERADE all -- везде где угодно /* ip-masq-agent: исходящий трафик является суб
объект для MASQUERADE (должен быть последним в цепочке) */
Похоже, это работает лучше, потому что внешние службы получают правильный IP-адрес, но у меня возникают проблемы с подключением и тайм-ауты.
Это моя конфигурация NAT:
сопоставление NAT
- Высокая доступность: Да
- Исходные подсети и диапазоны IP-адресов: первичные и вторичные диапазоны IP-адресов всех подсетей.
- IP-адреса NAT: статический-исходящий-ip XXX.XXX.XXX.XXX
У меня нет идей, может кто-нибудь дать мне совет?
После получения ответа я обновил свой файл конфигурации, чтобы добавить ips в соответствии с документацией Google Cloud, файл выглядит следующим образом:
nonMasqueradeCIDR:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
- 100.64.0.0/10
- 192.0.0.0/24
- 192.0.2.0/24
- 192.88.99.0/24
- 198.18.0.0/15
- 198.51.100.0/24
- 203.0.113.0/24
- 240.0.0.0/4
интервал повторной синхронизации: 60 сек.
masqLinkLocal: правда
Результат этого в iptables:
Сеть IP-MASQ (2 ссылки)
целевая защита выбор источника назначения
RETURN all -- везде 10.0.0.0/8 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 172.16.0.0/12 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 192.168.0.0/16 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 100.64.0.0/10 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 192.0.0.0/24 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 192.0.2.0/24 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 192.88.99.0/24 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 198.18.0.0/15 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 198.51.100.0/24 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 203.0.113.0/24 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
RETURN all -- везде 240.0.0.0/4 /* ip-masq-agent: локальный трафик не суб
объект на МАСКАРАД */
MASQUERADE all -- везде где угодно /* ip-masq-agent: исходящий трафик является суб
объект для MASQUERADE (должен быть последним в цепочке) */
Но если я запускаю завиток checkip.amazonaws.com
чтобы увидеть, какой IP-адрес используется узлом, я получаю IP-адрес, отличный от того, который определен в моей конфигурации NAT Cloud, и внешние службы отклоняют запрос как недоверенный из моего кластера.