Я пытался настроить 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 все равно будет находиться по неправильному адресу.
(Да, я мог бы перенастроить докер, но я бы не хотел.)