Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 如何连接kubernetes的无头Mongo服务_Spring_Spring Boot_Docker_Kubernetes - Fatal编程技术网

Spring 如何连接kubernetes的无头Mongo服务

Spring 如何连接kubernetes的无头Mongo服务,spring,spring-boot,docker,kubernetes,Spring,Spring Boot,Docker,Kubernetes,我已经使用了上述yaml。Mongo Db正在使用kubectl exec命令进行良好检查。下面是用于部署spring引导应用程序的yaml apiVersion: v1 kind: Service metadata: name: mongo labels: name: mongo spec: ports: - port: 27017 targetPort: 27017 clusterIP: None selector: name: mongo --- apiVer

我已经使用了上述yaml。Mongo Db正在使用kubectl exec命令进行良好检查。下面是用于部署spring引导应用程序的yaml

apiVersion: v1
kind: Service
metadata:
 name: mongo
 labels:
  name: mongo
spec:
 ports:
  - port: 27017
    targetPort: 27017
 clusterIP: None
 selector:
  name: mongo
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
 name: mongo
spec:
 serviceName: "mongo"
 replicas: 1
 template:
  metadata:
   labels:
    name: mongo
#    environment: test
  spec:
   terminationGracePeriodSeconds: 10
   volumes:
    - name: mongo-pv-storage
      persistentVolumeClaim:
       claimName: mongo-pv-claim
   containers:
    - name: mongo
      image: mongo:4.0.12-xenial
      command:
       - mongod
       - "--bind_ip"
       - 0.0.0.0
       - "--smallfiles"
       - "--noprealloc"
      ports:
       - containerPort: 27017
         name: mongo
      volumeMounts:
       - name: mongo-pv-storage
         mountPath: /data/db
我得到的例外是

apiVersion: apps/v1
kind: Deployment
metadata:
  name: imageprocessor-app-backend
  labels:
    app: imageprocessor-app-backend
spec:
  # modify replicas according to your case
  selector:
    matchLabels:
      tier: imageprocessor-app-backend
  template:
    metadata:
      labels:
        tier: imageprocessor-app-backend
    spec:
      containers:
      - name: imageprocessor-app-backend
        image: imageprocessor-app-backend:v1
        ports:
        - containerPort: 8099
        env:
        - name: spring.data.mongodb.host
          value: mongo-0.mongo
        - name: spring.data.mongodb.port
          value: "27017"
        - name: spring.data.mongodb.database
          value: testdb

---
apiVersion: v1
kind: Service
metadata:
  name: imageprocessor-app-backend
spec:
  type: NodePort
  ports:
  - port: 8099
    nodePort: 31471
  selector:
    tier: imageprocessor-app-backend
如何使用我的应用程序连接headless mongo服务。我尝试使用-name:spring.data.mongodb.host
value:mongo-0.mongo//和value:mongo

您需要使用服务的名称作为主机名。在您的示例中,它是
mongo
。我使用上面的YAML部署了mongo,我可以从同一名称空间中的另一个pod成功连接到它


如果您在另一个命名空间中运行
imageprocessor app backend
,则必须将运行
mongo
的命名空间添加到主机名:
mongo.
,例如
mongo.mongo

,您需要使用服务名称作为主机名。在您的示例中,它是
mongo
。我使用上面的YAML部署了mongo,我可以从同一名称空间中的另一个pod成功连接到它


如果您在另一个命名空间中运行
imageprocessor应用程序后端
,然后运行
mongo
,则必须将运行
mongo
的命名空间添加到主机名:
mongo.
,例如
mongo.mongo
,您好,请检查我上传的图像()。名称空间相同,但仍不起作用我有未注释的clusterIP:None。请检查新yaml的服务正确的主机名应该是
mongo
mongo.default
。我想我的集群出现了一些问题。在我重新设置集群后,它工作正常,yaml没有任何变化。主机名是mongo-0.mongo。@JibinNajeeb,我无法使用默认名称空间的mongo-0.mongo创建复制集。您在群集中遇到了什么问题?您好,请检查我上载的图像()。名称空间相同,但仍不起作用我有未注释的clusterIP:None。请检查新yaml的服务正确的主机名应该是
mongo
mongo.default
。我想我的集群出现了一些问题。在我重新设置集群后,它工作正常,yaml没有任何变化。主机名是mongo-0.mongo。@JibinNajeeb,我无法使用默认名称空间的mongo-0.mongo创建复制集。您在集群中遇到了什么问题?
2019-09-24 12:27:04.902  INFO 1 --- [o-0.mongo:27017] org.mongodb.driver.cluster               : Exception in monitor thread while connecting to server mongo-0.mongo:27017

com.mongodb.MongoSocketException: mongo-0.mongo: Try again
    at com.mongodb.ServerAddress.getSocketAddress(ServerAddress.java:188) ~[mongodb-driver-core-3.8.2.jar:na]
    at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:64) ~[mongodb-driver-core-3.8.2.jar:na]
    at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:62) ~[mongodb-driver-core-3.8.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:126) ~[mongodb-driver-core-3.8.2.jar:na]
    at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongodb-driver-core-3.8.2.jar:na]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212]
Caused by: java.net.UnknownHostException: mongo-0.mongo: Try again
    at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) ~[na:1.8.0_212]
    at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929) ~[na:1.8.0_212]
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324) ~[na:1.8.0_212]
    at java.net.InetAddress.getAllByName0(InetAddress.java:1277) ~[na:1.8.0_212]
    at java.net.InetAddress.getAllByName(InetAddress.java:1193) ~[na:1.8.0_212]
    at java.net.InetAddress.getAllByName(InetAddress.java:1127) ~[na:1.8.0_212]
    at java.net.InetAddress.getByName(InetAddress.java:1077) ~[na:1.8.0_212]
    at com.mongodb.ServerAddress.getSocketAddress(ServerAddress.java:186) ~[mongodb-driver-core-3.8.2.jar:na]
    ... 5 common frames omitted