他们应该能够交流和更新,并且彼此之间应该可见,主要是同步。
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策略,但无法仅创建实例。
答案 0 :(得分:1)
请检查以下内容:
对于Kubernetes,您需要使用HazelcastKubernetesDiscoveryStrategy
类。可以在XML配置或代码中定义它(如您的情况)。
检查Hazelcast群集的服务是否具有您指定的标签。服务名称和名称空间相同。
有两种配置发现的方法: DNS查找和 REST API 。每个都有特殊要求。您提到了DNS查找,但是您发送的配置实际上使用了REST API。
您的Hazelcast群集服务必须为无头ClusterIP 。
spec:
type: ClusterIP
clusterIP: None
您需要为您的应用授予访问权限,以访问Kubernetes API。请检查:https://github.com/hazelcast/hazelcast-code-samples/blob/master/hazelcast-integration/kubernetes/rbac.yaml