Kubernetes的Hazelcast集群中的裂脑发现

时间:2018-11-20 15:41:14

标签: kubernetes hazelcast multicast vert.x

我有以下设置。

我的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

Hazelcast的cluster.xml具有以下部分:

<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地址的第3个数字分组。所以,我得到了一个集群:

                      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

1 个答案:

答案 0 :(得分:1)

Hazelcast有一个专用插件,可以在Kubernetes中进行发现。请检查:hazelcast-kubernetes

Mutlicast可能有效或无效,因为它取决于基础网络。以我在GKE上的经验,它有时有效,有时却无效。这就是为什么从不建议在Kubernetes中使用基于多播的发现的原因。

资源: