Связь между модулями и сервисами в GCP между различными кластерами, связанными в сети VPC - PullRequest
1 голос
/ 20 марта 2019

У меня есть 2 кластера в GCP, один в Европе, а другой в США.Я создал сеть VPC для одноранговых подсетей и настроил соответствующие правила межсетевого экрана.Теперь я могу создавать вызовы между модулями, но получаю тайм-аут, когда пытаюсь создать их из модуля в Европе для службы в другом кластере.Я очень хорошо проверил все правила брандмауэра, но не могу найти решение.Может кто-нибудь дать мне подсказку, чтобы решить мою проблему?

1 Ответ

1 голос
/ 20 марта 2019

Проблема заключается в том, что GCP требуется использовать IP-адрес виртуальной машины для связи за пределами VPC.Чтобы разрешить межкластерную связь поверх VPN, необходимо убедиться, что кластеры могут обмениваться данными, находясь в одной виртуальной сети.GKE блокирует исходящий трафик в случае, если внутренний IP-адрес (адресное пространство модуля) используется для доступа к внутренним IP-адресам, которые находятся за пределами виртуальной сети (в данном случае через VPN).Следовательно, вам нужно настроить правило таблицы ip для маскировки трафика, поскольку он исходил от IP-адреса экземпляра виртуальной машины, а не от IP-адреса модуля для всего исходящего трафика в другую подсеть.

Существует реализация, которая используетнабор демонов для определения правил iptables MASQUERADE.

Более подробную информацию можно найти на странице github - https://github.com/kubernetes-incubator/ip-masq-agent и в документации по k8s - https://kubernetes.io/docs/tasks/administer-cluster/ip-masq-agent/

...