问题描述
我对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 (将#修改为@)