如何在具有不同Pod(App和Hazel insatnce)的kubernetes中实现hazelcast同步?

时间:2018-07-23 14:00:29

标签: kubernetes hazelcast kubernetes-ingress

他们应该能够交流和更新,并且彼此之间应该可见,主要是同步。

  

DiscoveryStrategyConfig strategyConfig =新的DiscoveryStrategyConfig(工厂);   引用

     

// strategyConfig.addProperty(“ service-dns”,   “ my-serice-name.my-namespace.svc.cluster.local”);   // strategyConfig.addProperty(“ service-dns-timeout”,“ 300”);

     

strategyConfig.addProperty(“ service-name”,“ my-service-name”);         strategyConfig.addProperty(“ service-label-name”,   “我的服务标签”);         strategyConfig.addProperty(“ service-label-value”,true);         strategyConfig.addProperty(“ namespace”,“ my-namespace”);

我遵循了https://github.com/hazelcast/hazelcast-kubernetes.I,使用第一种方法能够看到该实例(每个pod不在一个成员列表中),但是他们没有进行通信(如果我在一个榛树实例中做杂物,这并不能反映其他)。我想使用DNS策略,但无法仅创建实例。

1 个答案:

答案 0 :(得分:1)

请检查以下内容:

1。发现策略

对于Kubernetes,您需要使用HazelcastKubernetesDiscoveryStrategy类。可以在XML配置或代码中定义它(如您的情况)。

2。标签

检查Hazelcast群集的服务是否具有您指定的标签。服务名称和名称空间相同。

3。配置

有两种配置发现的方法: DNS查找 REST API 。每个都有特殊要求。您提到了DNS查找,但是您发送的配置实际上使用了REST API。

DNS查找

您的Hazelcast群集服务必须为无头ClusterIP

    spec:
      type: ClusterIP
      clusterIP: None

REST API

您需要为您的应用授予访问权限,以访问Kubernetes API。请检查:https://github.com/hazelcast/hazelcast-code-samples/blob/master/hazelcast-integration/kubernetes/rbac.yaml

其他有用的资源