Java kubernetes openshift origin上serviceDns的hazelcast发现服务失败

Java kubernetes openshift origin上serviceDns的hazelcast发现服务失败,java,spring-boot,kubernetes,hazelcast,openshift-origin,Java,Spring Boot,Kubernetes,Hazelcast,Openshift Origin,我正在将spring引导应用程序部署到kubernetes openshift。 在这个应用程序中,我使用Hazelcast作为缓存提供程序,我现在正在测试它。Hazelcast应该充当嵌入式缓存管理器,并与其他POD形成p2p云。(没有船长)。 作为一种发现机制,我使用的是hazelcast kubernetes,其编程配置如下: @Bean public HazelcastInstance configHazelcastInstance(HazelcastProperties pro

我正在将spring引导应用程序部署到kubernetes openshift。 在这个应用程序中,我使用Hazelcast作为缓存提供程序,我现在正在测试它。Hazelcast应该充当嵌入式缓存管理器,并与其他POD形成p2p云。(没有船长)。 作为一种发现机制,我使用的是hazelcast kubernetes,其编程配置如下:

@Bean
    public HazelcastInstance configHazelcastInstance(HazelcastProperties properties) {
        if (Strings.isNullOrEmpty(properties.getServiceDns()) || Strings.isNullOrEmpty(properties.getNamespace()))
            return Hazelcast.newHazelcastInstance();

        Config cfg = new Config();

        NetworkConfig networkConfig = cfg.getNetworkConfig();

        JoinConfig joinConfig = networkConfig.getJoin();

        joinConfig.getMulticastConfig().setEnabled(false);
        joinConfig.getTcpIpConfig().setEnabled(false);
        joinConfig.getAwsConfig().setEnabled(false);
        joinConfig.getAzureConfig().setEnabled(false);
        joinConfig.getEurekaConfig().setEnabled(false);
        joinConfig.getGcpConfig().setEnabled(false);
        joinConfig.getKubernetesConfig().setEnabled(true);

        final HazelcastKubernetesDiscoveryStrategyFactory factory = new HazelcastKubernetesDiscoveryStrategyFactory();

        final DiscoveryStrategyConfig strategyConfig = new DiscoveryStrategyConfig(factory);
        strategyConfig.addProperty("service-dns", properties.getServiceDns());
        strategyConfig.addProperty("service-dns-timeout", "10");

        joinConfig.getDiscoveryConfig().addDiscoveryStrategyConfig(strategyConfig);

        return Hazelcast.newHazelcastInstance(cfg);
    }
我在应用程序启动时收到的消息如下:

[main] WARN  c.h.s.d.integration.DiscoveryService - [10.129.2.253]:5701 [dev] [3.12.9] DNS lookup for serviceDns 'productizer.dev-product-configuration.svc.cluster.local' failed
当我执行
nslookup…
(对不起,无法复制终端):

所以看起来serviceDns名称存在,但hazelcast无法以某种方式解析它

你能推荐下一步吗

编辑: 与:

我得到:

2020-10-22T15:31:13,767Z    [hz._hzInstance_1_dev.cached.thread-2] INFO  com.hazelcast.nio.tcp.TcpIpConnector - [10.129.2.18]:5701 [dev] [3.12.9] Connecting to /10.128.2.214:5701, timeout: 10000, bind-any: true
2020-10-22T15:31:13,781Z    [hz._hzInstance_1_dev.IO.thread-in-0] INFO  c.hazelcast.nio.tcp.TcpIpConnection - [10.129.2.18]:5701 [dev] [3.12.9] Initialized new cluster connection between /10.129.2.18:58892 and /10.128.2.214:5701
2020-10-22T15:31:14,774Z    [hz._hzInstance_1_dev.priority-generic-operation.thread-0] ERROR com.hazelcast.cluster - [10.129.2.18]:5701 [dev] [3.12.9] Node could not join cluster. A Configuration mismatch was detected: Incompatible joiners! expected: , found: tcp-ip Node is going to shutdown now!
在openshift上启动时

所以我记录了
joinConfig

c.f.p.c.HazelcastCacheConfiguration - JoinConfig{multicastConfig=MulticastConfig [enabled=false, multicastGroup=224.2.2.3, multicastPort=54327, multicastTimeToLive=32, multicastTimeoutSeconds=2, trustedInterfaces=[], loopbackModeEnabled=false], tcpIpConfig=TcpIpConfig [enabled=false, connectionTimeoutSeconds=5, members=[], requiredMember=null], awsConfig=AliasedDiscoveryConfig{tag='aws', enabled=false, usePublicIp=false, properties={}}, gcpConfig=AliasedDiscoveryConfig{tag='gcp', enabled=false, usePublicIp=false, properties={}}, azureConfig=AliasedDiscoveryConfig{tag='azure', enabled=false, usePublicIp=false, properties={}}, kubernetesConfig=AliasedDiscoveryConfig{tag='kubernetes', enabled=true, usePublicIp=false, properties={namespace=dev-product-configuration, service-dns-timeout=10, service-dns=productizer.dev-product-configuration.svc.cluster.local}}, eurekaConfig=AliasedDiscoveryConfig{tag='eureka', enabled=false, usePublicIp=false, properties={}}, discoveryConfig=DiscoveryConfig{discoveryStrategyConfigs=[], discoveryServiceProvider=null, nodeFilter=null, nodeFilterClass='null'}}
黑泽尔卡斯特:3.12.9


hazelcast kubernetes:1.3.1

您的配置不正确。应该是这样的:

        joinConfig.getMulticastConfig().setEnabled(false);
        joinConfig.getKubernetesConfig().setEnabled(true);
        joinConfig.getKubernetesConfig().setProperty("service-dns", properties.getServiceDns());
        joinConfig.getKubernetesConfig().setProperty("service-dns-timeout", "10");
您不需要创建hazelcastkubernetesdiscoverystrategyactory

更多信息请访问:


副本:哦,真的吗@RafałLeszkoCan您是否也添加了k8配置?再加上描述你的服务。我不知道你所说的k8配置是什么意思。在这一点上,服务描述应该无关紧要。不管怎样,今天早上它才开始工作。所以我可能会删除这个问题
        joinConfig.getMulticastConfig().setEnabled(false);
        joinConfig.getKubernetesConfig().setEnabled(true);
        joinConfig.getKubernetesConfig().setProperty("service-dns", properties.getServiceDns());
        joinConfig.getKubernetesConfig().setProperty("service-dns-timeout", "10");