2015-06-05 2 views
5

У меня все еще возникают проблемы с доступом к экземпляру облака SQL из контейнера GCE. Когда я пытаюсь открыть MySQL, я получаю следующее сообщение об ошибке:Невозможно получить доступ к облаку Google SQL из механизма контейнера google

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial 
        communication packet', system error: 0 

соединение отлично от моей локальной машины работает, хотя (Экземпляр имеет публичный IP и я добавил IP моих офисному к «разрешенным сетям «). Таким образом, экземпляр доступен через Интернет просто отлично.

Я полагаю, что управление доступом db блокирует мой доступ из сети gce, но я не могу понять, как это настроить.

Я добавил свой проект в «Авторизованные приложения приложений приложений» на панели управления Cloud SQL, но это, похоже, не помогает.

EDIT: Если я добавлю «0.0.0.0/0» в Разрешенные сети, все работает хорошо. Это, очевидно, не то, что я хочу, так что мне нужно вводить вместо этого?

EDIT2: Я мог бы также добавить весь публичный IP-адрес из моего kubernetes кластера (полученного через gcloud compute instances list) и добавить их в список доступа облака SQL вручную. Но это кажется неправильным, не так ли?

+0

Привет, у меня такая же проблема. Как вы с этим справились? Я думаю, что облако sql Google не позволяет использовать ip из контейнера Google, а затем, где добавить ip? И добавить, какой ip? – scho

ответ

4

recommended solution является использование SSL соединения с этим 0.0.0.0/0 CIDR. Это означает ограничение соединения с правильным ключом. Я также читал, что они не будут обещать вам определенный диапазон IP-адресов, поэтому CIDR/14 может не работать несколько раз. Мне приходилось делать SSL-соединение с моим Cloud SQL по тем же причинам.

+0

А, я не видел эту статью. Благодарю. – Nuschk

+0

Если создайте pem, следуйте этому руководству. Тогда как его использовать? – scho

+0

Это зависит от того, как вам нужно его использовать. Вероятно, нужно немного больше информации. –

0

Если вы добавили блок/14 CIDR для вашего кластера контейнеров в качестве диапазона адресов источника, это работает?

Чтобы найти блок CIDR для вашего кластера, щелкните по имени кластера в Google Cloud Console и найдите строку с надписью «Диапазон адресов контейнера».

+0

Спасибо за ваше предложение. К сожалению, он даже не позволяет мне вводить его. Говорит: «Частные сети не могут быть включены в белый список». – Nuschk

+0

Я могу создать правило брандмауэра, которое использует 10.0.0.0/8 или 10.28.0.0/14 как исходный диапазон. –

1

Вы должны использовать общедоступные IP-адреса экземпляров GCE, чтобы правильно разрешить трафик на экземпляр Cloud SQL (как вы упомянули в EDIT2).

Вы можете найти более подробную информацию в облаке SQL документации: https://cloud.google.com/sql/docs/gce-access

+0

Да, это сработает. Уловка в том, что я думаю, что я хотел бы иметь эфемерные IP-адреса на единственных узлах. Это, по крайней мере, значение по умолчанию при создании кластера контейнеров. Кроме того, мне понадобился бы статический IP-адрес для каждого узла в кластере. Но, черт возьми, контейнерный двигатель (и кубернеты), кажется, передний край, поэтому я думаю, что мне нужно жить с этим. Это просто подслушивает меня немного ... – Nuschk

Смежные вопросы