Как я могу предложить Google настроить пиринг VPC с servicenetworking.googleapis.com?

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

Я следую инструкциям, приведенным здесь: https://cloud.google.com/sql/docs/mysql/private-ip

Краткое изложение этих инструкций:

  1. Убедитесь, что на вашем общем хосте VPC включен сервис servicenetworking.googleapis.com.
  2. Убедитесь, что в вашем проекте включен сервис servicenetworking.googleapis.com.
  3. Выделите диапазон IP-адресов для вашего нового частного IP-адреса
  4. Настройте пиринг сети VPC (https://cloud.google.com/sql/docs/mysql/configure-private-services-access)
  5. Создание экземпляра облачного sql без общедоступного IP-адреса
  6. Ожидайте, что частный IP-адрес нового экземпляра будет в выделенном диапазоне

Я выполнил их через шаг 4 и вижу следующее:

Неактивно. Ожидание создания соединения с помощью servicenetworking.googleapis.com

Моя интерпретация этой страницы такова, что я выполнил свою часть работы, и теперь очередь Google - но это было несколько дней назад. Должен ли я что-то сделать, чтобы побудить Google создать соединение?

Я думаю, что сосредотачиваюсь в правильном месте, потому что, если я попытаюсь использовать свой частный IP, gcloud скажет мне создать сеть, которую я жду:

❯ gcloud --project=my-project-name beta \
  sql instances patch foo \
  --network=my-network-name --no-assign-ip

The following message will be used for the patch API method.
{"name": "foo", "project": "my-project-name", "settings": {"ipConfiguration": {"ipv4Enabled": false, "privateNetwork": "https://compute.googleapis.com/compute/v1/projects/my-project-name/global/networks/my-network-name"}}}
Patching Cloud SQL instance...failed.

ERROR: (gcloud.beta.sql.instances.patch) [INTERNAL_ERROR] Failed to create subnetwork. Please create Service Networking connection with service 'servicenetworking.googleapis.com' from consumer project '11111111111' network 'my-network-name' again.

person MatrixManAtYrService    schedule 23.03.2020    source источник
comment
Проверьте Stackdriver, чтобы узнать, были ли сообщения об ошибках во время установления пирингового соединения. Обычно этот запрос выполняется быстро в течение нескольких минут.   -  person John Hanley    schedule 24.03.2020
comment
Спасибо @JohnHanley, я мог искать не в том месте (в веб-интерфейсе stackdriver), но на меня ничего не выскакивает. Я удалил сетевое пиринговое соединение и создал его снова в надежде раскрыть ключ к разгадке, но пока я остаюсь невежественным.   -  person MatrixManAtYrService    schedule 24.03.2020
comment
Я никогда не видел этого сбоя, поэтому я не уверен, какие записи будут помещены в Stackdriver. Вы должны увидеть запрос пиринга в Stackdriver. Если вы не видите, что смотрите не в том месте.   -  person John Hanley    schedule 24.03.2020


Ответы (1)


Обычно доступ к частным сервисам реализуется как пиринговое соединение VPC между вашей сетью VPC и сетью VPC сервисов Google, в которой находится ваш экземпляр Cloud SQL. Как отметил @JohnHanley, пиринг VPC должен быть создан в течение нескольких минут, поэтому не ожидается, что вам придется ждать больше этого времени.

Чтобы проверить создание пиринга на Stackdriver, вы можете использовать следующий расширенный фильтр:

jsonPayload.event_subtype = "compute.networks.addPeering"

Тем не менее, ошибка, которую вы наблюдаете при попытке исправить свой экземпляр SQL, имеет смысл, поскольку пиринг не был создан. Вместо «Неактивен» должно быть «Одноранговая сеть VPC подключена».

Подводя итог, в вашем сценарии экземпляр Cloud SQL не может получить IP-адрес в вышеупомянутой сети, поскольку он не может связаться с ним.

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

Я также предлагаю вам проверить лимиты пиринга quota, если у него есть достигнуто:

gcloud compute network peerings list --network = 'ваша сеть'

Также было бы неплохо ознакомиться с Ограничениями пиринга VPC.

При этом, если вы по-прежнему сталкиваетесь с той же проблемой при создании пиринга VPC, может потребоваться внутреннее расследование, и я предлагаю вам сообщить об этом с помощью этого ссылка

Надеюсь, это поможет.

person Raynel A.S    schedule 26.03.2020
comment
Вы дали мне многое, спасибо. Я начинаю подозревать, что что-то не так с моей конфигурацией стекового драйвера. Я захожу в Мониторинг - ›Оповещения -› Просмотреть все события, и я не могу найти ничего новее, чем 19 февраля, хотя с тех пор я возился. Если я доберусь до сути, я обязательно обновлюсь здесь и приму ваш ответ, если это применимо. - person MatrixManAtYrService; 26.03.2020