Hazelcast Kubernetes插件未定义

Hazelcast Kubernetes插件未定义,kubernetes,orientdb,hazelcast,Kubernetes,Orientdb,Hazelcast,我正在尝试使用Kubernetes创建OrientDB(3.0.10版)集群。OrientDB在其分布式模式下使用Hazelcast(版本3.10.4),这就是为什么我要设置KubernetesHazelcast插件的原因。我举了一个例子。 我已经创建了所有必要的配置文件,在build.sbt文件中为我的项目定义了hazelcast Kubernetes依赖项(版本1.3.1),该依赖项出现在类路径中 但是,每个pod上的日志显示以下错误消息: com.orientechnologies.ori

我正在尝试使用Kubernetes创建OrientDB(3.0.10版)集群。OrientDB在其分布式模式下使用Hazelcast(版本3.10.4),这就是为什么我要设置KubernetesHazelcast插件的原因。我举了一个例子。 我已经创建了所有必要的配置文件,在build.sbt文件中为我的项目定义了hazelcast Kubernetes依赖项(版本1.3.1),该依赖项出现在类路径中 但是,每个pod上的日志显示以下错误消息:

com.orientechnologies.orient.server.distributed.ODistributedStartupException: Error on starting distributed plugin
Caused by: com.hazelcast.config.properties.ValidationException: There is no discovery strategy factory to create 'DiscoveryStrategyConfig{properties={service-dns=orientdbservice2.default.svc.cluster.local, service-dns-timeout=10}, className='com.hazelcast.kubernetes.HazelcastKubernetesDiscoveryStrategy', discoveryStrategyFactory=null}' Is it a typo in a strategy classname? Perhaps you forgot to include implementation on a classpath?
因此,看起来Hazelcast Kubernetes依赖项是以一种工作方式建立的。如何修复此错误

以下是我的config hazelcast.xml文件:

   <properties>
        <property name="hazelcast.discovery.enabled">true</property>
    </properties>
    <network>
        <join>
            <multicast enabled="false"/>
            <tcp-ip enabled="false" />
            <discovery-strategies>
                <discovery-strategy enabled="true"
                                    class="com.hazelcast.kubernetes.HazelcastKubernetesDiscoveryStrategy">

                    <properties>
                        <property name="service-dns">orientdbservice2.default.svc.cluster.local</property>
                        <property name="service-dns-timeout">10</property>
                    </properties>
                </discovery-strategy>
            </discovery-strategies>
        </join>
    </network>

真的
orientdbservice2.default.svc.cluster.local
10

对于集群创建,我使用StatefulSet和OrientDB映像,并将所有配置文件装载为配置映射。我很确定,问题不在我的配置文件中,而在多播而不是dns策略中,一切正常。此外,Kubernetes集群本身也没有网络问题。

首先,OrientDB版本应更新为最新版本-3.0.10,并嵌入最新的Hazelcast版本。另外,我已经将hazelcast-kubernetes.jar依赖项文件直接装载到/orientdb/lib文件夹中,它开始正常工作。HazelcastKubernetes插件被发现,节点加入集群:

INFO  [172.17.0.3]:5701 [orientdb-test-cluster-1] [3.10.4] Kubernetes Discovery activated resolver: DnsEndpointResolver [DiscoveryService]
INFO  [172.17.0.3]:5701 [orientdb-test-cluster-1] [3.10.4] Activating Discovery SPI Joiner [Node]
INFO  [172.17.0.3]:5701 [orientdb-test-cluster-1] [3.10.4] Starting 2 partition threads and 3 generic threads (1 dedicated for priority tasks) [OperationExecutorImpl]

Members {size:3, ver:3} [
    Member [172.17.0.3]:5701 - hash
    Member [172.17.0.4]:5701 - hash
    Member [172.17.0.8]:5701 - hash
]

正在进行的相关讨论:。