#google-app-engine #google-cloud-platform #google-compute-engine #vpc
#google-app-engine #google-облачная платформа #google-compute-engine #vpc
Вопрос:
У меня есть стандартная служба App Engine (2-го поколения) в Европе -west1. У меня также есть служба GKE за балансировщиком нагрузки в США-central1. Чтобы подключиться к балансировщику нагрузки, я настроил VPC-коннектор в europe-west1 и обновил app.yaml службы app engine с необходимой конфигурацией VPC-коннектора, однако служба не может подключиться к балансировщику нагрузки. Сбой запроса с ошибкой тайм-аута.
Существует ли ограничение зоны / региона для бессерверных VPC-коннекторов? Я могу успешно подключиться к балансировщику нагрузки из бессерверной функции в том же регионе с помощью другого соединителя VPC в том же регионе.
Комментарии:
1. Соединитель должен быть расположен в том же проекте и регионе, что и подключающаяся к нему бессерверная служба, если вы не используете общий VPC.
2. Спасибо. В документации говорится, что это относится только к некоторым ресурсам, таким как CloudSQL и Memorystore. Это неправильно и применимо ли это ко всем?
3. Если вы создаете облачную функцию в том же регионе, что и ваш App Engine, вы можете использовать тот же соединитель VPC (не нужно создавать новый). В этом случае проверьте, можете ли вы с помощью своей функции получить доступ к вашему балансировщику нагрузки (тот же IP и порт, которые вы используете в коде App Engine). Проблема может возникнуть из-за разных правил VPC или брандмауэра
4. Да, функция и соединитель находятся в одном регионе, поэтому он работает как ожидалось, и это тот случай, когда служба app Engine также находится в том же регионе. Я не был уверен, автоматически ли создание соединителя устанавливает межрегиональные правила выхода. Я изучаю возможность обновления правил выхода соединителя, чтобы попасть в LB в us-central1, и, при необходимости, правил входа, чтобы LB принимал запросы от соединителя europe-west1
Ответ №1:
Вопрос больше связан с исходящим трафиком от соединителя VPC, а не с входящим трафиком на соединитель из бессерверной службы. Ответ включает комментарии в вопросе.
Брандмауэр VPC connector, похоже, не ограничивает исходящий трафик регионом, в котором находится соединитель, поэтому проблема может быть в брандмауэре балансировщика нагрузки, ограничивающем входящий трафик регионом, в котором он находится.
Что сбивало с толку, так это то, что, несмотря на то, что VPC-коннектор и служба app Engine находятся в одном регионе, запрос к соединителю завершается ошибкой с таймаутом, что указывает на невозможность подключения к соединителю. Эта интерпретация, скорее всего, неверна, и, скорее всего, соединитель был поврежден, но время ожидания истекло, перенаправляя запрос на балансировщик нагрузки из-за ограничения брандмауэра балансировщика нагрузки