Как разрешить исходящие запросы из кластера Google Cloud Run на GKE

Кластеры с поддержкой Cloud Run по умолчанию отключают исходящий сетевой трафик от любого модуля

После создания кластера с Cloud Run, следуя документации, можно проверить, что все запросы из модуля в кластере, даже не только от модулей Knative, но и от любого модуля, будут возвращать 404. Неясно, какая конфигурация устанавливает это , но ясно, что это происходит путем создания кластера с включенным Cloud Run.

Как следствие, мы не можем, например, установить helm в этом кластере. Фактически, мы не можем установить ничего, что потребует внешнего запроса от модуля.

Действия по воспроизведению:

1. Следуйте официальной документации по настройке Cloud Run.

2 - Запустите простой альпийский под в своем кластере: kubectl run -it --rm --restart=Never alpine --image=alpine sh

3 - выполнить любой внешний запрос, например: wget www.google.com

Cloud Run также документирует это поведение и объясняет, как включить исходящий трафик

Хотя я выполнил эти шаги и все еще не смог включить трафик. Возможно я что-то делаю не так или действительно не работает как надо.

Обновить

Как указано в https://stackoverflow.com/a/55861559/3165889, это происходит в текущей версии Istio Cloud Run. использует, но его следует изменить в выпуске 1.1, где исходящий трафик будет включен для всех исходящих запросов по умолчанию.


person Joao Cunha    schedule 25.04.2019    source источник


Ответы (2)


Это описано в документации по настройке Cloud Run on GKE: https://cloud.google.com/run/docs/gke/setup#enhibited_outbound_network_access

Вскоре в этом нет необходимости, так как он будет включен по умолчанию при переходе на Istio 1.1, где политика исходящего трафика по умолчанию разрешает любой исходящий трафик.

person Ahmet Alp Balkan    schedule 26.04.2019
comment
Спасибо, что поделился! Я пробовал редактировать ConfigMap, как описано в документации. Хотя после повторного запуска kubectl run -it --rm --restart=Never alpine --image=alpine sh исходящий трафик все еще не был включен. Единственное, что у меня сработало, это отключение istio-инъекции с меткой в ​​пространстве имен по умолчанию. - person Joao Cunha; 26.04.2019
comment
Еще одно замечание, но это уже другая тема: мои модули не удаляются после выполнения указанной выше команды. Убивается только альпийский контейнер. Таким образом, контейнер istio-sidecar сохраняет стручок живым. - person Joao Cunha; 26.04.2019
comment
Звучит как новый вопрос. - person Ahmet Alp Balkan; 29.04.2019
comment
Пожалуйста, не забудьте принять ответ, если он решит вашу опубликованную проблему. - person Ahmet Alp Balkan; 30.04.2019
comment
Спасибо за ваше предложение. Но на самом деле этого не произошло. Как я уже упоминал перед вашим ответом в описании: Cloud Run также документирует это поведение и объясняет, как включить исходящий трафик. Хотя я выполнил эти шаги и все еще не смог включить трафик. Я также слышал от других людей, что они не могли заставить его работать с помощью официальной документации. Что действительно помогло, так это полное отключение istio-инъекции. Я предоставлю больше отзывов о том, как я изменил ConfigMap, и, возможно, вы попытаетесь мне помочь. Я тебя скоро пингую, когда обновлю. - person Joao Cunha; 30.04.2019

Одно из возможных решений - отключить istio-sidecar в пространстве имен по умолчанию: kubectl label namespace default istio-injection=disabled

Подробнее: https://gitlab.com/groups/gitlab-org/-/epics/1202#note_164285838

person Joao Cunha    schedule 25.04.2019