我在 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" }
不知道为什么我在不同的场合得到不同的错误。
即使主节点出现故障,我应该怎么做才能保持运行?