VPN-доступ к внутренней сети не работает после обновления кластера GKE до версии 1.14.6

Мы обновили существующий кластер разработки с 1.13.6-gke.13 до 1.14.6-gke.13, и наши модули больше не могут подключаться к нашей внутренней сети через наш Google Cloud VPN. Наш производственный кластер (все еще на 1.13) использует ту же сеть VPC и туннели VPN и все еще работает нормально. Единственное, что изменилось, - это обновление узла администрирования и пула узлов до версии 1.14 в кластере разработки.

Я открыл оболочку в модуле в кластере разработки и попытался проверить связь с IP-адресом внутреннего сервера, к которому нам нужен доступ. Ответа не получено. То же самое с модулем в нашем производственном кластере работает должным образом.

Я подключился к узлу кластера по ssh и смог пропинговать внутреннюю сеть. так что проблемы с сетью возникают только у модулей.

Доступ к публичным сервисам в кластере по-прежнему работает должным образом. Проверки работоспособности в порядке.

ОБНОВИТЬ:

Я создал новый пул узлов, используя последнюю версию 1.13, осушил модули из пула 1.14, и все в порядке, и все модули снова работают в пуле 1.13. Что-то определенно не так с 1.14. Еще неизвестно, является ли это причиной проблемы из-за какой-то новой опции конфигурации или просто ошибкой.

РАЗРЕШАЮЩАЯ СПОСОБНОСТЬ:

Здесь обсуждается маскировка IP, https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent. Мое решение состояло в том, чтобы добавить подсети модулей для каждого из моих кластеров в список рекламируемых сетей в моих облачных маршрутизаторах VPN на GCP. Итак, теперь сети контейнеров могут проходить через VPN.


person jlar310    schedule 09.10.2019    source источник


Ответы (1)


До GKE 1.13.x, даже если в этом нет необходимости, GKE будет маскировать поды, пытающиеся достичь внешних IP-адресов, даже на том же VPC кластера, если только пункт назначения не находится в диапазоне 10.0.0.0/8.

Начиная с версий 1.14.x, это правило больше не добавляется по умолчанию для кластеров. Это означает, что модули, пытающиеся достичь любой конечной точки, будут видеть их IP-адрес модуля вместо IP-адреса узла, поскольку правило маскарада было удалено.

Вы можете попробовать воссоздать свой Cloud VPN, чтобы включить диапазон IP-адресов POD.

person LukeTerro    schedule 09.10.2019
comment
БОЛЬШОЕ СПАСИБО, это единственный ответ в Интернете, который решил мою проблему. После обновления до 1.14.x я больше не мог подключаться к экземпляру Cloud SQL с частным IP. Я следовал этому руководству, чтобы установить отсутствующий ip-masq-agent. cloud.google.com/kubernetes-engine/ документы / инструкции / - person Eric Guan; 17.12.2019
comment
Я столкнулся с той же проблемой, потому что Google автоматически обновил кластеры с 1.13 до 1.14. Я нигде не могу найти такого изменения в маскирующем поведении, есть ли об этом какой-либо официальный документ? - person Giovanni Caporaletti; 25.03.2020