kubernetes Pod (java приложение) не может взаимодействовать с Document db - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь запустить приложение java на кластере aws eks (kubernetes). После успешного извлечения образа из реестра gitlab он пытается запуститься, но через некоторое время отключается. Я спрашиваю, почему имя хоста, которое мне дали в uri mongodb, было неправильно установлено для переменной $ {db_host}. Вот логи контейнера

2020-05-05 13:50:02.520  INFO 1 --- [           main] c.t.s.java-app.Application     : Starting Application on java-app-ttzjk with PID 1 (/home/gradle/app.jar started by root in /home/gradle)
2020-05-05 13:50:02.527  INFO 1 --- [           main] c.t.s.java-app.Application     : The following profiles are active: docker
2020-05-05 13:50:04.280  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data MongoDB repositories in DEFAULT mode.
2020-05-05 13:50:04.418  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 124ms. Found 2 MongoDB repository interfaces.
2020-05-05 13:50:05.923  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'asyncConfig' of type [com.taskforce.security.dependency.configuration.AsyncConfig$$EnhancerBySpringCGLIB$$16fd6daa] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2020-05-05 13:50:06.606  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 9000 (http)
2020-05-05 13:50:06.628  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-05-05 13:50:06.633  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.33]
2020-05-05 13:50:06.766  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-05-05 13:50:06.766  INFO 1 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 4093 ms
2020-05-05 13:50:07.736  INFO 1 --- [           main] org.mongodb.driver.cluster               : Cluster created with settings {hosts=[${db_host}:27017], mode=MULTIPLE, requiredClusterType=REPLICA_SET, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500, requiredReplicaSetName='rs0'}
2020-05-05 13:50:07.744  INFO 1 --- [           main] org.mongodb.driver.cluster               : Adding discovered server ${db_host}:27017 to client view of cluster
2020-05-05 13:50:07.848  INFO 1 --- [{db_host}:27017] org.mongodb.driver.cluster               : Exception in monitor thread while connecting to server ${db_host}:27017

com.mongodb.MongoSocketException: ${db_host}: Name or service not known


    at com.mongodb.ServerAddress.getSocketAddresses(ServerAddress.java:211) ~[mongodb-driver-core-3.11.2.jar!/:na]
    at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:75) ~[mongodb-driver-core-3.11.2.jar!/:na]
    at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:65) ~[mongodb-driver-core-3.11.2.jar!/:na]
    at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:128) ~[mongodb-driver-core-3.11.2.jar!/:na]
    at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongodb-driver-core-3.11.2.jar!/:na]
    at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
Caused by: java.net.UnknownHostException: ${db_host}: Name or service not known
    at java.base/java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) ~[na:na]
    at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(Unknown Source) ~[na:na]
    at java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source) ~[na:na]
    at java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source) ~[na:na]
    at java.base/java.net.InetAddress.getAllByName0(Unknown Source) ~[na:na]
    at java.base/java.net.InetAddress.getAllByName(Unknown Source) ~[na:na]
    at java.base/java.net.InetAddress.getAllByName(Unknown Source) ~[na:na]
    at com.mongodb.ServerAddress.getSocketAddresses(ServerAddress.java:203) ~[mongodb-driver-core-3.11.2.jar!/:na]
    ... 5 common frames omitted

Вот код yaml. локально работает, но на кубернетах, к сожалению, нет

debug: false
server.port: 9000
logging:
  level:
    root: INFO
    org.springframework.web: INFO
    org.springframework.boot.autoconfigure: INFO
spring:
  devtools.livereload.enabled: false
  boot:
    admin:
      client:
        enabled: true
        instance:
          name: "xxxxxx-xxxxxx"
  datasource:
    continue-on-error: true
  data:
    mongodb:
      database: xxxxxxxxxx-xxxxxx
      uri: "mongodb://xxxxxxxx:xxxxxx@xxxxxxxxxxxxxxxxxxx.docdb.amazonaws.com:27017/xxxxxx-xxxxxxx?replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false"
app:
  scheduler:
    threadPoolSize: 0
  async:
    threadPoolSize: 0
...