使用Sidecar方法将我的kubernetes引擎应用程序连接到Google Cloud sql实例时遇到麻烦

问题描述

我对Kubernetes和Google云还很陌生,并且正在尝试将我的dropwizard微服务部署到云中。我在云上设置了一个MysqL实例,并创建了所有秘密和服务帐户。每当我创建部署和负载均衡器,然后获取日志时,都会引发通信链接故障错误。我的容器注册表中映像中的配置文件设置为使用localhost作为主机。 这是我部署的yml文件

kind: Deployment
Metadata:
  labels:
    app: users-service
  name: users-service
  annotations:
    deployment.kubernetes.io/revision: "1"
spec:
  replicas: 1
  selector:
    matchLabels:
      app: users-service
  template:
    Metadata:
      labels:
        app: users-service
    spec:
      containers:
        - image: gcr.io/users-service-289022/users-service:v1
          imagePullPolicy: Always
          name: users-service-container
          ports:
            - containerPort: 8080
              name: app-port
              protocol: TCP
            - containerPort: 8081
              name: admin-port
              protocol: TCP
          env:
          - name: DB_USER
            valueFrom:
              secretKeyRef:
                name: cloudsql-db-credentials
                key: username
          - name: DB_PASSWORD
            valueFrom:
              secretKeyRef:
                name: cloudsql-db-credentials
                key: password
          resources: {}
        - name: cloudsql-proxy
          image: gcr.io/cloudsql-docker/gce-proxy:1.17
          command: ["/cloud_sql_proxy","-instances=lusers-service-289022:us-east1:MysqL-db=tcp:3306","-credential_file=/secrets/cloudsql/credentials.json"]
          volumeMounts:
            - name: cloudsql-instance-credentials
              mountPath: /secrets/cloudsql
              readOnly: true
            - name: ssl-certs
              mountPath: /etc/ssl/certs
            - name: cloudsql
              mountPath: /cloudsql
      volumes:
        - name: cloudsql-instance-credentials
          secret:
            secretName: cloudsql-instance-credentials
        - name: cloudsql
          emptyDir:
        - name: ssl-certs
          hostPath:
            path: /etc/ssl/certs
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler 

这是日志的输出

Causing: com.MysqL.cj.core.exceptions.CJCommunicationsException: Communications link failure
!
! The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
! at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
! at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
! at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
! at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
! at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
! at com.MysqL.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:54)
! at com.MysqL.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:93)
! at com.MysqL.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:133)
! at com.MysqL.cj.core.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:149)
! at com.MysqL.cj.MysqLa.io.MysqLaSocketConnection.connect(MysqLaSocketConnection.java:83)
! at com.MysqL.cj.MysqLa.MysqLaSession.connect(MysqLaSession.java:204)
! at com.MysqL.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:975)
! at com.MysqL.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:843)
! ... 26 common frames omitted
! Causing: com.MysqL.cj.jdbc.exceptions.CommunicationsException: Communications link failure
!
! The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
! at com.MysqL.cj.jdbc.exceptions.sqlError.createCommunicationsException(sqlError.java:166)
! at com.MysqL.cj.jdbc.exceptions.sqlExceptionsMapping.translateException(sqlExceptionsMapping.java:58)
! at com.MysqL.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:853)
! at com.MysqL.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:440)
! at com.MysqL.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)
! at com.MysqL.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:221)
! at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:310)
! at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:203)
! at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:735)
! at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:667)
! at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:482)
! at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:154)
! at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:118)
! at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:107)
! at io.dropwizard.db.ManagedPooledDataSource.start(ManagedPooledDataSource.java:37)
! at io.dropwizard.lifecycle.JettyManaged.doStart(JettyManaged.java:27)
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
! at org.eclipse.jetty.server.Server.start(Server.java:449)
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
! at org.eclipse.jetty.server.Server.doStart(Server.java:416)
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
! at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:53)
! at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:44)
! at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:85)
! at io.dropwizard.cli.Cli.run(Cli.java:75)
! at io.dropwizard.Application.run(Application.java:93)
! at com.cb.CBUseRSService.main(CBUseRSService.java:30)
INFO  [2020-09-12 15:57:23,835] org.eclipse.jetty.server.AbstractConnector: Started application@3069a360{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
WARN  [2020-09-12 15:57:23,846] org.eclipse.jetty.util.thread.QueuedThreadPool: org.eclipse.jetty.util.thread.QueuedThreadPool@dw-admin{STOPPED,1<=0<=64,i=0,q=0} rejected org.eclipse.jetty.io.ManagedSelector$$Lambda$167/0x0000000800e08040@7f6329cb
ERROR [2020-09-12 15:57:23,848] io.dropwizard.cli.ServerCommand: Unable to start server,shutting down
! java.net.ConnectException: Connection refused
! at java.base/sun.nio.ch.Net.connect0(Native Method)
! at java.base/sun.nio.ch.Net.connect(Net.java:503)
! at java.base/sun.nio.ch.Net.connect(Net.java:492)
! at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
! at java.base/java.net.socksSocketImpl.connect(SocksSocketImpl.java:333)
! at java.base/java.net.socket.connect(Socket.java:648)
! at com.MysqL.cj.core.io.StandardSocketFactory.connect(StandardSocketFactory.java:202)
! at com.MysqL.cj.MysqLa.io.MysqLaSocketConnection.connect(MysqLaSocketConnection.java:57)
! ... 29 common frames omitted
! Causing: com.MysqL.cj.core.exceptions.CJCommunicationsException: Communications link failure
!
! The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
! at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
! at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
! at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
! at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
! at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
! at com.MysqL.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:54)
! at com.MysqL.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:93)
! at com.MysqL.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:133)
! at com.MysqL.cj.core.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:149)
! at com.MysqL.cj.MysqLa.io.MysqLaSocketConnection.connect(MysqLaSocketConnection.java:83)
! at com.MysqL.cj.MysqLa.MysqLaSession.connect(MysqLaSession.java:204)
! at com.MysqL.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:975)
! at com.MysqL.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:843)
! ... 26 common frames omitted
! Causing: com.MysqL.cj.jdbc.exceptions.CommunicationsException: Communications link failure
!
! The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
! at com.MysqL.cj.jdbc.exceptions.sqlError.createCommunicationsException(sqlError.java:166)
! at com.MysqL.cj.jdbc.exceptions.sqlExceptionsMapping.translateException(sqlExceptionsMapping.java:58)
! at com.MysqL.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:853)
! at com.MysqL.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:440)
! at com.MysqL.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)
! at com.MysqL.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:221)
! at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:310)
! at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:203)
! at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:735)
! at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:667)
! at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:482)
! at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:154)
! at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:118)
! at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:107)
! at io.dropwizard.db.ManagedPooledDataSource.start(ManagedPooledDataSource.java:37)
! at io.dropwizard.lifecycle.JettyManaged.doStart(JettyManaged.java:27)
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
! at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
! at org.eclipse.jetty.server.Server.start(Server.java:449)
! at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
! at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
! at org.eclipse.jetty.server.Server.doStart(Server.java:416)
! ... 7 common frames omitted
! Causing: org.eclipse.jetty.util.MultiException: Multiple exceptions
! at org.eclipse.jetty.server.Server.doStart(Server.java:413)
! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
! at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:53)
! at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:44)
! at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:85)
! at io.dropwizard.cli.Cli.run(Cli.java:75)
! at io.dropwizard.Application.run(Application.java:93)
! at com.cb.CBUseRSService.main(CBUseRSService.java:30)
! Suppressed: java.util.concurrent.RejectedExecutionException: org.eclipse.jetty.io.ManagedSelector$$Lambda$167/0x0000000800e08040@7f6329cb
!       at org.eclipse.jetty.util.thread.QueuedThreadPool.execute(QueuedThreadPool.java:385)
!       at org.eclipse.jetty.io.SelectorManager.execute(SelectorManager.java:167)
!       at org.eclipse.jetty.io.ManagedSelector.doStart(ManagedSelector.java:99)
!       at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
!       at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
!       at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
!       at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:305)
!       at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
!       at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
!       at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:105)
!       at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:276)
!       at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:81)
!       at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:238)
!       at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
!       at org.eclipse.jetty.server.Server.doStart(Server.java:428)
!       ... 7 common frames omitted

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)