Обнаружение разделения мозга в кластере Hazelcast в Kubernetes

У меня следующая установка.

Мои статьи Vert.x сгруппированы с помощью Hazelcast и развернуты в кластере Kubernetes со следующей сетевой информацией:

------------------------------------------------
           TCP/IP NETWORK INFORMATION
------------------------------------------------
IP Entered = ..................: 10.60.0.0
CIDR = ........................: /14
Netmask = .....................: 255.252.0.0
Netmask (hex) = ...............: 0xfffc0000
Wildcard Bits = ...............: 0.3.255.255
------------------------------------------------
Network Address = .............: 10.60.0.0
Broadcast Address = ...........: 10.63.255.255
Usable IP Addresses = .........: 262,142
First Usable IP Address = .....: 10.60.0.1
Last Usable IP Address = ......: 10.63.255.254

cluster.xml Hazelcast имеет следующий раздел:

<join>
  <multicast enabled="true">
    <multicast-group>224.2.2.3</multicast-group>
    <multicast-port>54327</multicast-port>
  </multicast>
</join>

Вроде все нормально. Когда я запускаю статьи в подах, я получаю результат (сокращенно):

>kubectl get pods --namespace develop -o wide

READY   STATUS    RESTARTS   AGE   IP        
1/1     Running   0          52m   10.60.4.18
1/1     Running   0          4m    10.60.6.19
1/1     Running   0          4m    10.60.1.16
1/1     Running   0          4m    10.60.1.18
1/1     Running   0          4m    10.60.6.18  
1/1     Running   0          4m    10.60.1.17
1/1     Running   0          4m    10.60.4.23
1/1     Running   0          8m    10.60.6.17
1/1     Running   0          4m    10.60.4.22
1/1     Running   0          4m    10.60.4.21
1/1     Running   0          4m    10.60.6.20
1/1     Running   0          5d    10.60.4.9 

Проблема в том, что кластеры группируются не по указанному имени группы, а по третьему номеру IP-адреса. Итак, я получаю группу из:

                      masterAddress=[10.60.1.17]:5701
                      Members[
                              [10.60.1.17]:5701
                              [10.60.1.16]:5701
                              [10.60.1.18]:5701]]

затем 5 участников для "кластера" 10.60.4.*, 4 участника для 10.60.6.* и так далее, и они не объединяются ...

Что мне не хватает?

TIA


person injecteer    schedule 20.11.2018    source источник
comment
Скорее всего, у участников кластера нет доступа к другим подсетям. Не могли бы вы поделиться полным журналом участника? Мы можем видеть, обнаружил ли он других участников или нет.   -  person Alparslan Avci    schedule 20.11.2018
comment
Я бы не стал использовать многоадресную рассылку в Kubernetes. Менеджер кластера Vert.x Hazelcast имеет документацию для развертывания Kubernetes. Его еще нет на официальном сайте (в ветке master будет, когда выйдет 3.6).   -  person tsegismont    schedule 21.11.2018
comment
@tsegismont хорошо, что раньше мы запускали его с плагином com.hazelcast:hazelcast-kubernetes:1.0.0, но у него были некоторые ограничения, заключающиеся в том, что все модули должны были запускаться на одном и том же IP-адресе (как объяснил мне наш DevOps-парень). С многоадресной рассылкой мы могли использовать разные IP-адреса. Сейчас я не понимаю, почему многоадресная рассылка работает, но создает несколько кластеров вместо одного.   -  person injecteer    schedule 21.11.2018


Ответы (1)


У Hazelcast есть специальный плагин для обнаружения в Kubernetes. Пожалуйста, проверьте: hazelcast-kubernetes.

Mutlicast может работать, а может и не работать, поскольку это зависит от базовой сети. По моему опыту работы с GKE, иногда это работает, иногда нет. Вот почему для Kubernetes никогда не рекомендуется обнаружение на основе многоадресной рассылки.

Ресурсы:

person Rafał Leszko    schedule 23.11.2018