GCloud - Не удается получить доступ к облачному SQL из кластера Kubernetes, но он работает с локального ПК - PullRequest
0 голосов
/ 27 сентября 2018

Я хочу подключиться к моей базе данных Cloud SQL (MySQL) из контейнера, работающего в GCloud Kubernetes Engine, через JDBC.Контейнер содержит приложение Java Spring Boot с некоторыми службами REST.

Когда я запускаю свое приложение Java локально, все работает нормально, и приложение просто подключается к облачной БД SQL.Однако, когда я развертываю свое приложение в GCloud, я получаю этот ответ только при вызове REST API моего сервера (через почтальона):

{
"timestamp": "2018-09-27T06:54:22.987+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Could not open JDBC Connection for transaction; nested exception 
is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications 
link failure\n\nThe last packet sent successfully to the server was 0 
milliseconds ago. The driver has not received any packets from the server.",
"path": "/api/user/getDbs"
}

Я уже пытался разрешить все подключения к базе данных, добавив0.0.0.0/0 во вкладке авторизации.Я также попытался добавить правила брандмауэра.Оба безуспешно.

Я ценю любую помощь, я могу получить:)

1 Ответ

0 голосов
/ 27 сентября 2018

Текущая рекомендация состоит в том, чтобы запустить контейнер с коляской с помощью cloud-sql-proxy.Здесь есть хорошая запись (https://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine). Также есть брокер бета-сервисов, который выглядит многообещающим. Вам не нужно авторизовать или импортировать сертификаты с прокси-сервером. Однако убедитесь, что предоставленная учетная запись службы имеет правильные разрешенияПосле этого ваше приложение может подключиться к локальному хосту: POR

https://cloud.google.com/kubernetes-engine/docs/concepts/google-cloud-platform-service-broker

...