диапазон частных IP-адресов для GCP Cloud SQL игнорируется - PullRequest
0 голосов
/ 02 ноября 2018

Я пытался настроить Google Cloud SQL с частным IP-соединением, где диапазон IP-адресов, к которому он привязан, выделен вручную и не удалось. я не знаю, если это ошибка в реализации, потому что она все еще находится в бета-версии, если в документах чего-то не хватает или я просто что-то делаю не так. (Сессия командной строки находится внизу, для краткого изложения того, что я посмотреть.)

Изначально я настроил его на автоматическое распределение диапазона IP-адресов. Все заработало просто отлично, разве что выбрал 172.17.0.0/24, который является одной из сетей управляется докером на моем экземпляре GCE, поэтому я не мог подключиться оттуда (но можно на другой машине без докера). Итак, я попытался пойти вниз по руководству маршрут распределения.

Сначала я разорвал все связанные сетевые объекты, которые были созданы на Моего имени. Было два пиринга VPC, cloudsql-postgres-googleapis-com и servicenetworking-googleapis-com, который я удалил, а потом подтвердил, что связанная с ними запись маршрутизации также исчезла.

Затем я следовал инструкциям на https://cloud.google.com/vpc/docs/configure-private-services-access#allocating-range,, создавая 10.10.0.0/16, потому что я хотел это в моей сети default, которая автоматический режим, поэтому я ограничен нижней половиной (что в настоящее время ясно).

В этот момент я вернулся на страницу создания экземпляра Cloud SQL, так как должен делать все остальное для меня. Я установил флажок «Частный IP» и выбрал default сеть.

В то время я не делал заметок, поэтому мои воспоминания могут быть ошибочными, особенно потому, что мой опыт в последующих попытках был последовательно другим, но я помню, что ниже выпадающего списка выбора сети Msgstr "Этот экземпляр будет использовать существующее соединение управляемой службы". Я предположил это означало, что он будет использовать диапазон адресов, который я создал, и пошел дальше с создание экземпляра, но экземпляр снова попал в сеть 172.17.0.0/24.

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

С четвертой попытки я заметил кнопку «Подключить» и нажал это, и ждите, чтобы сказать, что это удалось. Что он сделал, вроде: он заменил раскрывающийся список и кнопки с тем же сообщением, которое я видел ранее об использовании существующее соединение. И снова экземпляр был создан не в той сети.

Я пытался в пятый раз, на этот раз создав новый диапазон адресов с новым имя - google-managed-services-default - это имя, которое автоматическое распределение вернуло его, когда я только начал частные документы доступа к услугам предлагают). Но даже с этим именем и явно выбрав его, я все равно оказался в иную сеть.

Действительно, теперь я вижу, что после нажатия «Подключиться» я могу проверить маршруты и увидеть, что маршрут был создан к 172.17.0.0/24.

Похоже, происходит то же самое, если я все делаю из командной строки:

$ gcloud beta compute addresses list
NAME                             ADDRESS/RANGE    TYPE      PURPOSE      NETWORK  REGION    SUBNET  STATUS
google-managed-services-default  10.11.0.0/16     INTERNAL  VPC_PEERING  default                    RESERVED
$ gcloud beta services vpc-peerings connect \ 
    --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-default \
    --network=default \
    --project=...
$ gcloud beta services vpc-peerings list --network=default
--- 
network: projects/.../global/networks/default
peering: servicenetworking-googleapis-com
reservedPeeringRanges: 
- google-managed-services-default
---
network: projects/.../global/networks/default
peering: cloudsql-postgres-googleapis-com
reservedPeeringRanges:
- google-managed-services-default
$ gcloud beta compute routes list
NAME                            NETWORK      DEST_RANGE     NEXT_HOP                          PRIORITY
peering-route-ad7b64a0841426ea  default      172.17.0.0/24  cloudsql-postgres-googleapis-com  1000

Так что теперь я не уверен, что еще попробовать. Есть ли какое-то состояние, которое я не думал, чтобы очистить? Как маршрут должен быть связан с диапазоном адресов? Почему это создает два пиринга, когда я попросил только один? Если бы мне пришлось вручную создать маршрут к нужному диапазону адресов, я бы предположил, что это не сработает, потому что конечная точка Postgres все равно будет находиться по неправильному адресу.

(Да, я мог бы перенастроить докер, но я бы не хотел.)

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Где-то в сервисном механизме Google Cloud обнаружилась ошибка, которая теперь исправлена. Для справки см. Разговор в https://issuetracker.google.com/issues/118849070.

0 голосов
/ 26 января 2019

Я нашел здесь https://cloud.google.com/sql/docs/mysql/private-ip, что это, кажется, правильное поведение:

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

...