Wildfly/Jboss-v10 не работает в кластерном режиме с Docker Swarm

У меня есть веб-приложение Java, работающее в wildfly/jboss version 10. Я использую докер (1.13.1-cs2) для развертывания своего приложения. Теперь, согласно некоторому сценарию HA (High availability), я хочу, чтобы мое приложение работало в режиме кластера. Поэтому я меняю свою конфигурацию wildfly на кластер режим внутри моего standalone-full-ha.xml. После этого изменения все работает отлично, только если я использую сеть докеров по умолчанию и запускаю контейнер с docker bridge network. Но в соответствии с моим требованием я хочу, чтобы весь этот контейнер/мое приложение работало как служба с помощью docker swarm. Но если я начну использовать это как службу, то wildfly/jboss не сможет запуститься в режиме кластера и выдаст такую ​​ошибку:

21:01:27,885 ERROR (TransferQueueBundler,ee,WEB-APP-NODE) JGRP000029: WEB-APP-NODE: failed sending message to cluster (38 bytes): java.io.IOException: Operation not permitted, headers: NAKACK2: [HIGHEST_SEQNO, seqno=2631], TP: [cluster_name=ee]
21:01:28,826 ERROR (TransferQueueBundler,ee,WEB-APP-NODE) JGRP000029: WEB-APP-NODE: failed sending message to cluster (4166 bytes): java.io.IOException: Operation not permitted, headers: FORK: ee:activemq-cluster, NAKACK2: [MSG, seqno=2632], TP: [cluster_name=ee]
21:01:29,886 ERROR (TransferQueueBundler,ee,WEB-APP-NODE) JGRP000029: WEB-APP-NODE: failed sending message to cluster (38 bytes): java.io.IOException: Operation not permitted, headers: NAKACK2: [HIGHEST_SEQNO, seqno=2632], TP: [cluster_name=ee]
21:01:30,826 ERROR (TransferQueueBundler,ee,WEB-APP-NODE) JGRP000029: WEB-APP-NODE: failed sending message to cluster (4166 bytes): java.io.IOException: Operation not permitted, headers: FORK: ee:activemq-cluster, NAKACK2: [MSG, seqno=2633], TP: [cluster_name=ee]

Примечание. Я использую swarm ingress network по умолчанию для предоставления порта и связи.

Согласно моему устранению неполадок, эта проблема связана с многоадресным адресом, используемым wildfly/jboss version 10 для создания проблемы. Я также пробовал эти шаги многоадресный адрес в докере

Но это все еще не помогает в моем случае. Может ли кто-нибудь помочь мне в этом? Это очень ценится!

Благодарю вас!


person chintan thakar    schedule 31.05.2017    source источник


Ответы (1)


Оверлейная сеть от Docker Swarm в настоящее время не поддерживает многоадресную IP-рассылку.

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

Другой способ — создать сеть на основе macvlan, которая поддерживает одноадресную рассылку. Учебное пособие: http://collabnix.com/docker-17-06-swarm-mode-now-with-macvlan-support/ С этим вариантом у меня проблема, что как только вы подключаете такую ​​сеть к входу контейнера (сетке маршрутизации) и доступу к внешней мир через docker_gwbridge перестает работать (подробности: контейнер Docker Swarm с сетью MACVLAN получает неправильный шлюз - нет доступа в Интернет)

person t3chris    schedule 01.10.2017