代码之家  ›  专栏  ›  技术社区  ›  Cassie

在具有Kubernetes的OrientDB集群中找不到节点

  •  0
  • Cassie  · 技术社区  · 7 年前

    我曾经 this guide

    Members [1] {
        Member [pod-ip]:5701 - generated id
    }
    

    什么会导致这样的问题?

    我的orientdb服务器配置文件如下所示:

    <handler class="com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin">
         <parameters>
              <parameter value="true" name="enabled"/>
              <parameter value="orientdb/config/default-distributed-db-config.json" name="configuration.db.default"/>
              <parameter value="orientdb/config/hazelcast.xml" name="configuration.hazelcast"/>
              <parameter name="nodeName" value="$pod_dns" />
         </parameters>
    </handler>
    

    我的hazelcast.xml文件如下所示(pod\u dns是存储在env中的pod的名称):

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

    kind: StatefulSet
    apiVersion: apps/v1
    metadata:
      name: orientdbservice
    spec:
      serviceName: orientdbservice
      replicas: 3
      podManagementPolicy: Parallel
      selector:
        matchLabels:
          service: orientdb
          type: container-deployment
      template:
        metadata:
          labels:
            service: orientdb
            type: container-deployment
        spec:
          containers:
          - name: orientdbservice
            image: orientdb:2.2.36
            command: ["/bin/sh","-c", " cp /configs/* /orientdb/config/ ; chmod +x /orientdb/config/hazelcast_template.sh ; chmod +x /orientdb/config/server_config_template.sh ; sh /orientdb/config/hazelcast_template.sh ; sh /orientdb/config/server_config_template.sh ; /orientdb/bin/server.sh -Ddistributed=true" ]
            env:
            - name: ORIENTDB_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: orientdb-password
                  key: password.txt
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            ports:
            - containerPort: 2424
              name: port-binary
            - containerPort: 2480
              name: port-http
            - containerPort: 5701
              name: hazelcast
            volumeMounts:
            - name: config
              mountPath: /orientdb/config
            - name: orientdb-config-template-hazelcast
              mountPath: /configs/hazelcast_template.sh
              subPath: hazelcast_template.sh
            - name: orientdb-config-template-server
              mountPath: /configs/server_config_template.sh
              subPath: server_config_template.sh
            - name: orientdb-config-distributed
              mountPath: /configs/default-distributed-db-config.json
              subPath: default-distributed-db-config.json
            - name: orientdb-databases
              mountPath: /orientdb/databases
            - name: orientdb-backup
              mountPath: /orientdb/backup
          volumes:
          - name: config
            emptyDir: {}
          - name: orientdb-config-template-hazelcast
            configMap:
              name: orientdb-configmap-template-hazelcast
          - name: orientdb-config-template-server
            configMap:
              name: orientdb-configmap-template-server
          - name: orientdb-config-distributed
            configMap:
              name: orientdb-configmap-distributed
      volumeClaimTemplates:
      - metadata:
          name: orientdb-databases
          labels:
            service: orientdb
            type: pv-claim
        spec:
          accessModes: [ "ReadWriteOnce" ]
          resources:
            requests:
              storage: 20Gi
      - metadata:
          name: orientdb-backup
          labels:
            service: orientdb
            type: pv-claim
        spec:
          accessModes: [ "ReadWriteOnce" ]
          resources:
            requests:
              storage: 10Gi
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Cassie    7 年前

    问题出在Hazelcast0Kubernetes插件配置中。首先,有必要使用嵌入的最新Hazelcast版本将OrientDB更新到最新的-3.0.10版本。另外,我已经将hazelcast-kubernetes.jar依赖文件直接安装到/orientdb/lib文件夹中,它开始正常工作。问题不在于配置文件,而在于OrientDB的依赖关系设置。