Мы пытаемся подключить наше стандартное приложение GAE через один из наших VPC, который используется для подключения к нашим VPN-клиентам. VPC (rsvpn) запускает openvpn в качестве клиента, подключающегося к нашей подсети OpenVPN. Он настроен с помощью ip_forward и настроен для пересылки всех входящих пакетов, предназначенных для 172.16.0.0/24, через tun0. Глобальная маршрутизация сетей VPC настроена на маршрутизацию 172.16.0.0/24 через rsvpn. Когда я подключаюсь к другому VPC, я могу выйти из подсети VPN, как и ожидалось. Однако пакеты приложения GAE, предназначенные для 172.16.0.0/24, не маршрутизируются через rsvpn.
Мы немного покопались и обнаружили, что нам, вероятно, нужно развернуть приложение через бета-версию gcloud, используя vpc_access_connector, поэтому мы тоже это сделали. vpc_access_connector настроен с подсетью 10.8.0.0/28, и приложение было настроено с соответствующей конфигурацией. Повторно разверните приложение, и оно по-прежнему не попадает на сервер rsvpn.
Когда мы смотрим на текущую конфигурацию приложения, мы не видим упоминания о vpc_access_connector, но он явно настроен в app.yaml.
Обсуждали с поддержкой Google. Они подтверждают, что наша настройка должна быть правильной и что приложение должно использовать наши таблицы маршрутизации vpc. В настоящее время они изучают это.
Мне интересно, может ли кто-нибудь пролить свет на это. Документация Google не впечатляет, и я постоянно нахожу, что она часто бывает неверной. Я слышал несколько ссылок, которые вроде бы предполагают, что vpc_access_connector может работать только в гибких средах, но затем в документации и службе поддержки Google говорится, что он должен работать в стандартном режиме.
Кто-нибудь заставил эту настройку работать?
Наше решение закончилось добавлением разрешений пользователя вычислительной сети к профилю, выполняющему развертывание. К сожалению, эта ошибка разрешений не регистрируется для нас, а является внутренней для Google. Похоже, это решило все проблемы, с которыми мы сталкивались в стандартной среде. Также не забудьте использовать gcloud beta app deploy