Приложение Springboot в одном модуле не может подключиться к mongodb в другом модуле через Openshift - PullRequest
2 голосов
/ 09 января 2020

Я пытаюсь развернуть модули mongodb (1 основной и 2 дополнительный) в OpenShift, они были развернуты, но перешли в состояние «Ошибка» со следующей ошибкой,

exception in initAndListen: IllegalOperation: Attempted to create a lock file on a read-only directory: /data/db, terminating

Модули go модулей успешно запущены после выполнения следующей политики adm,

oc adm policy add-scc-to-group anyuid system:authenticated

Теперь я пытаюсь развернуть приложение springboot, которое подключается к mongodb, но модуль перезагружается несколько раз из-за следующей ошибки

 INFO Exception in monitor thread while connecting to server mongo-node-2.database:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
Caused by: java.net.SocketTimeoutException: connect timed out
                        INFO Exception in monitor thread while connecting to server mongo-node-3.database:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
Caused by: java.net.SocketTimeoutException: connect timed out
                        INFO Exception in monitor thread while connecting to server mongo-node-1.database:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
Caused by: java.net.SocketTimeoutException: connect timed out
                        WARN Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; nested exception is org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata
org.springframework.context.ApplicationContextException: Failed to start bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; nested exceptio  is org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata
Caused by: org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata

Модуль Springboot-приложения можно подключить к модулю mongodb при развертывании через openshift, поэтому я создал фиктивный модуль с помощью k8s и попытался подключить модуль mongodb, и соединение прошло успешно,

mongo mongo-node-1.database.svc (successful)

Я могу подключиться к mongodb из-за пределов кластера OpenShift через NodePort, изнутри кластера с помощью dns (mon go -node-1.database.sv c) и из модуля, созданного через k8s, но не из развертывания OpenShift.

Я подозреваю, что проблема может быть из-за какой-то политики, что OpenShift блокирует spri Модуль ngboot для подключения к модулю mongodb.

Любые предложения, пожалуйста.

1 Ответ

1 голос
/ 22 января 2020

Проблема связана с тем, что модули и службы в одном проекте (пространстве имен) не могут получить доступ к модулям и службам в другом проекте (пространстве имен) в OpenShift.

Все модули и службы в и теперь могут получить доступ ко всем модулям и службам и наоборот, используя следующую команду.

$ oc adm pod-network join-projects --to=<project1> <project2> <project3>

Ссылочная ссылка - https://docs.openshift.com/container-platform/3.11/admin_guide/managing_networking.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...