Несколько экземпляров одного и того же модуля в одном узле — Kubernetes

#kubernetes #wildfly #kubernetes-pod

#kubernetes #wildfly #kubernetes-pod

Вопрос:

Я хочу запустить несколько экземпляров одного и того же модуля в одном и том же узле в Kubernetes. Для этого я использую образ wildfly docker. При запуске более одного модуля в одном узле я получаю исключение конфликта портов.

 2020-11-30 15:53:17,079 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("core-service" => "management"),
("management-interface" => "http-interface")
]) - failure description: {"WFLYCTL0080: Failed services" => {"org.wildfly.management.http.extensible" => "java.net.BindException: Address already in use /0.0.0.0:9990"}}
2020-11-30 15:53:17,259 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("subsystem" => "undertow"),
("server" => "default-server"),
("http-listener" => "default")
]) - failure description: {"WFLYCTL0080: Failed services" => {"org.wildfly.undertow.listener.default" => "Address already in use /0.0.0.0:9575"}}
2020-11-30 15:53:17,260 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("subsystem" => "undertow"),
("server" => "default-server"),
("https-listener" => "https")
]) - failure description: {"WFLYCTL0080: Failed services" => {"org.wildfly.undertow.listener.https" => "Address already in use /0.0.0.0:8553"}}
2020-11-30 15:53:17,262 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("core-service" => "management"),
("management-interface" => "http-interface")
]) - failure description: {"WFLYCTL0080: Failed services" => {"org.wildfly.management.http.extensible" => "java.net.BindException: Address already in use /0.0.0.0:9990"}}
2020-11-30 15:53:17,399 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0028: Stopped deployment demo.war (runtime-name: demo.war) in 133ms
2020-11-30 15:53:17,416 ERROR [org.jboss.as.server] (ServerService Thread Pool -- 44) WFLYSRV0021: Deploy of deployment "demo.war" was rolled back with the following fai
lure message: undefined  
 

Итак, как я могу обойти эту проблему и запустить несколько экземпляров без конфликтов портов??

Ответ №1:

Порты разных модулей могут сталкиваться только в том случае , если вы используете hostPort или hostNetwork . В противном случае вы не должны столкнуться с какими-либо проблемами при запуске нескольких идентичных модулей в одном узле.

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

 kubectl run wildfly --image=jboss/wildfly
kubectl run wildfly-2 --image=jboss/wildfly
kubectl run wildfly-3 --image=jboss/wildfly
 

Если вам нужно использовать hostPort или hostNetwork (что не рекомендуется), тогда вы здесь сами по себе, и вам нужно «организовать» порты самостоятельно.

Комментарии:

1. я понимаю, замена hostNetwork заставила это работать, но если я изменю это значение, мое приложение не будет обращаться к БД. Итак, есть ли какой-либо способ подключить приложение к БД без использования сети хостов??