【问题标题】:Unable to create clusters in Hazelcast over the Kubernetes无法通过 Kubernetes 在 Hazelcast 中创建集群
【发布时间】:2021-09-04 13:40:28
【问题描述】:

我正在尝试在 Kubernetes 上使用 Hazelcast。为此,Docker 安装在 Windows 上,Kubernetes 环境是在 Docker 上模拟的。这是配置文件hazelcast.xml

<?xml version="1.0" encoding="UTF-8"?>
<hazelcast
    xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.7.xsd"
    xmlns="http://www.hazelcast.com/schema/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <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">cobrapp.default.endpoints.cluster.local</property>
                    <property name="service-dns-timeout">10</property>
                  </properties>
                  -->
                </discovery-strategy>
              </discovery-strategies>
        </join>
    </network>
</hazelcast>

问题是无法在模拟环境中创建集群。根据我的部署文件,它应该创建三个集群。这是部署配置文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test-deployment
  labels:
    app: test
spec:
  replicas: 3
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
      - name: test
        imagePullPolicy: Never
        image: testapp:latest
        ports:
        - containerPort: 5701
        - containerPort: 8085

---
apiVersion: v1
kind: Service
metadata:
  name: test-service
spec:
  selector:
    app: test
  type: LoadBalancer
  ports:
    - name: hazelcast
      port: 5701
    - name: test
      protocol: TCP
      port: 8085
      targetPort: 8085

执行部署文件时的输出

Members [1] {
        Member [10.1.0.124]:5701 this
}

无论预期输出如何,根据部署文件,它应该包含三个集群。有人可以帮忙吗?

【问题讨论】:

    标签: kubernetes hazelcast


    【解决方案1】:

    Hazelcast 的默认多播发现不适用于开箱即用的 Kubernetes。你需要一个额外的插件。有两种选择,Kubernetes API 和 DNS 查找。

    更多信息请查看the relevant documentation

    【讨论】:

    • 我想我在使用 xml 时也做了同样的事情。如果你能用一些例子更清楚地回答它。
    • 你可以在this guide找到一个完整的例子。
    猜你喜欢
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 2020-07-18
    • 2019-10-19
    • 1970-01-01
    相关资源
    最近更新 更多