Maven Project с использованием весеннего приложения с Google Cloud Sql развертывания с Kubernetes - PullRequest
0 голосов
/ 19 сентября 2018

Я создал один проект Maven, используя весеннее приложение с облачным Google Sql, развернутым с помощью kubernetes.я использую следующие шаги.

./mvnw -DskipTests spring-boot:run

./mvnw -DskipTests package

docker build -t gcr.io/ProjectID/app:v1 .

docker run -ti --rm -p 8080:8080 gcr.io/ProjectID/app:v1 

После этого докера успешно запустите приложение в веб-превью Google Cloud.

gcloud docker -- push gcr.io/ProjectID/app:v1

https://console.cloud.google.com/project/ProjectID/storage/browser/

kubectl run app \
  --image=gcr.io/ProjectID/app:v1 \
  --port=8080

kubectl expose deployment app --type=LoadBalancer

kubectl get services

После этого я получу один внешний IP: http://EXTERNAL_IP:8080/

Я использую следующую кодировку:

 Class.forName("com.mysql.cj.jdbc.Driver");

   String jdbcUrl = String.format(
        "jdbc:mysql://IPAddress:3306/%s?cloudSqlInstance=%s&socketFactory=com.google.cloud.sql.mysql.SocketFactory&useSSL=false", databaseName,instanceConnectionName);

  Connection connection = DriverManager.getConnection(jdbcUrl, username, password);

Я получаю ошибку ниже:

Start Program
Start To Connect SQL Server
2018-09-19 09:07:33.075  INFO 1 --- [nio-8080-exec-1] c.google.cloud.sql.mysql.SocketFactory   : Connecting to Cloud SQL instance [winter-dynamics-213603:us-central1:visacare].
2018-09-19 09:07:33.086  INFO 1 --- [nio-8080-exec-1] c.g.cloud.sql.mysql.SslSocketFactory     : First Cloud SQL connection, generating RSA key pair.
2018-09-19 09:07:34.344  INFO 1 --- [nio-8080-exec-1] c.g.cloud.sql.mysql.SslSocketFactory     : Obtaining ephemeral certificate for Cloud SQL instance [winter-dynamics-213603:us-central1:visacare].
2018-09-19 09:07:34.906 ERROR 1 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server.] with root cause

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
2018-09-19 09:07:33.075  INFO 1 --- [nio-8080-exec-1] c.google.cloud.sql.mysql.SocketFactory   : Connecting to Cloud SQL instance [winter-dynamics-213603:us-centr
    "message" : "Insufficient Permission",
    "reason" : "insufficientPermissions"
  } ],
  "message" : "Insufficient Permission"
}

1 Ответ

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

«Недостаточные разрешения» относятся к областям, поскольку вы взаимодействуете с Google Cloud API.убедитесь, что вы предоставили правильную область для взаимодействия API, которое у вас есть, движок kubernetes, администратор SQL, посмотрите на таблицу здесь .И он уже ответил здесь .

...