0

我在 Kubernetes 集群上运行了一个简单的 elasticsearch 集群。我正在使用 Elasticsearch 运算符来执行此操作。1.7版

这就是我的 ES 对象的外观。

apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: sifter-elastic-data-factory
spec:
  version: 7.10.1
  nodeSets:
    - name: master
      count: 1
      config:
        node.roles: [ master ]

      podTemplate:
        spec:
          initContainers:
            - name: sysctl
              securityContext:
                privileged: true
              command: ['sh', '-c', 'sysctl -w vm.max_map_count=262144']
          containers:
            - name: elasticsearch
              resources:
                requests:
                  memory: 8Gi
                  cpu: 3000m
                limits:
                  memory: 8Gi
                  cpu: 3000m
              env:
                - name: ES_JAVA_OPTS
                  value: -Xms6g -Xmx6g
                - name: cluster.initial_master_nodes
                  value: "sifter-elastic-data-factory-es-master-0"
      volumeClaimTemplates:
        - metadata:
            name: elasticsearch-data-data-factory
          spec:
            accessModes:
              - ReadWriteOnce
            resources:
              requests:
                storage: 50Gi
            storageClassName: ssd
    - name: data
      count: 3
      config:
        node.roles: [ data, ingest ]
      podTemplate:
        spec:
          initContainers:
            - name: sysctl
              securityContext:
                privileged: true
              command: ['sh', '-c', 'sysctl -w vm.max_map_count=262144']
          containers:
            - name: elasticsearch
              resources:
                requests:
                  memory: 8Gi
                  cpu: 3000m
                limits:
                  memory: 8Gi
                  cpu: 3000m
              env:
                - name: ES_JAVA_OPTS
                  value: -Xms6g -Xmx6g
      volumeClaimTemplates:
        - metadata:
            name: elasticsearch-data-data-factory
          spec:
            accessModes:
              - ReadWriteOnce
            resources:
              requests:
                storage: 60Gi
            storageClassName: ssd
  http:
    service:
      spec:
        type: ClusterIP
    tls:
      selfSignedCertificate:
        disabled: true

如果重新启动数据节点之一,这将正常工作。Kubernetes 有状态集会启动一个已删除的节点,然后它会知道谁是 ES 主节点并从那里获取。

但是如果主节点死亡(或被删除),一个新的主节点会抛出以下异常。

“引起:org.elasticsearch.cluster.coordination.CoordinationStateRejectedException:使用与本地集群 uuid QlL6zADsR_-8cF7mW4n9Og 不同的集群 uuid gsBEw4N2S-K31IxI4tu4-w 加入集群状态验证,拒绝”,

或者

127.0.0.1:9301, 127.0.0.1:9302, 127.0.0.1:9303, 127.0.0.1:9304, 127.0.0.1:9305, [::1]:9300, [::1]:9301, [::1 ]:9302, [::1]:9303, [::1]:9304, [::1]:9305] 来自主机提供商和 [{xxxxx-elastic-data-factory-es-master-0}{6ftRoPASSq -jAh-Y7DOy_g}{vdTgG6vFSweeMmuTdCOkVw}{10.1.7.72}{10.1.7.72:9300}{lmr}{k8s_node_name=aks-npdev-10099729-vmss0000dv,ml.machine_memory=8589934592,xpack.installed=true,transform.node= false, ml.max_open_jobs=20}] 来自上次已知的集群状态;节点术语 0,术语 0 中最后接受的版本 0" } 9300}{lmr}{k8s_node_name=aks-npdev-10099729-vmss0000dv, ml.machine_memory=8589934592, xpack.installed=true, transform.node=false, ml.max_open_jobs=20}] 来自上次已知的集群状态;节点术语 0,术语 0 中最后接受的版本 0" } 9300}{lmr}{k8s_node_name=aks-npdev-10099729-vmss0000dv, ml.machine_memory=8589934592, xpack.installed=true, transform.node=false, ml.max_open_jobs=20}] 来自上次已知的集群状态;节点术语 0,术语 0 中最后接受的版本 0" }

不知道为什么我在不同的场合得到不同的错误。

即使主节点出现故障,我应该怎么做才能保持运行?

4

0 回答 0