Служба Spring GCP не подключается к базе данных Cloud SQL
У меня есть служба Spring GCP, которая при локальном запуске прекрасно подключается к моему экземпляру Google Cloud SQL.
Однако при развертывании и запуске в моем кластере Google Cloud Kubernetes не удается установить соединение с ошибками "Недостаточные разрешения".
Я выполнил шаги https://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine, но проблема с подключением осталась.
Мой исходный код https://github.com/christianblake/spring-boot-gcp
deploy.yml находится в корневом каталоге.
Цените, если у кого-то есть указатели, поскольку я очевидно пропускаю точку.
Спасибо.
2 ответа
Если предположить, credentials.json
установлен правильно, учетная запись службы определена в credentials.json
должен иметь Cloud SQL Client
роль. Есть несколько способов сделать это, как описано здесь.
Из Cli, вы бы сделали что-то вроде этого:
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member serviceAccount:$GOOGLE_SERIVICE_ACCOUNT.iam.gserviceaccount.com --role roles/cloudsql.client
@Mangu, я нашел следующую ошибку в журналах ошибок.
Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
Что привело к следующему аналогичному вопросу Cloud SQL Proxy и недостаточному разрешению
Я воссоздал кластер, в том числе области SQL со следующим.
gcloud container clusters create cloudcluster --num-nodes 2 --machine-type n1-standard-1 --zone us-central1-c --scopes https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/sqlservice.admin
И это решило проблему.
Спасибо вам и за отзывы, и за извинения за отсутствие кода ошибки Google в исходном вопросе.