【发布时间】:2020-02-26 22:35:21
【问题描述】:
我正在尝试创建一个弹性搜索的多节点集群。那么我应该使用哪个服务来使用 kubernetes 创建集群。我能够在节点内使用无头服务进行 es 之间的内部通信。但是在多节点的情况下不会发生同样的情况。另外,在工作节点的 elasticsearch.yml 文件中,我必须在主节点的“discovery.zen.ping.unicast.hosts”中提及哪个 ip 和端口。
deployment.yml 文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: elasticsearch-deployment
spec:
selector:
matchLabels:
app: elasticsearch
replicas: 2
template:
metadata:
labels:
app: elasticsearch
spec:
containers:
- name: elasticsearch
image: sandeepp163/elasticsearch:latest
volumeMounts:
- mountPath: /usr/share/elasticsearch/config/
name: config
- mountPath: /var/logs/elasticsearch/
name: logs
volumes:
- name: config
hostPath:
path: "/etc/elasticsearch/"
- name: logs
hostPath:
path: "/var/logs/elasticsearch"
内部通信服务配置
apiVersion: v1
kind: Service
metadata:
name: elasticsearch-cluster
spec:
clusterIP: None
selector:
app: elasticsearch
ports:
- name: transport
port: 9300
targetPort: 9300
外部服务配置
apiVersion: v1
kind: Service
metadata:
name: load-service
labels:
app: elasticsearch
spec:
selector:
app: elasticsearch
type: NodePort
ports:
- nodePort: 31234
port: 9200
targetPort: 9200
我在工作节点上遇到的错误。
[2020-02-26T05:29:02,297][WARN ][o.e.d.z.ZenDiscovery ] [worker] not enough master nodes discovered during pinging (found [[]], but needed [1]), pinging again
worker 中的elasticsearch.yml 文件
cluster.name: xxx
node.name: worker
node.master: false
node.data: true
node.ingest: false
discovery.zen.ping.unicast.hosts: ["192.168.9.0"]
discovery.zen.minimum_master_nodes: 1
master 中的 elasticsearch.yml
cluster.name: xxx
node.name: master
node.master: true
node.data: false
node.ingest: false
谢谢
【问题讨论】:
-
能否添加elasticsearch版本、集群版本、失败的pod日志等?这将有助于我们更好地了解您的情况。
-
elasticsearch 版本:版本:6.1.2,内部版本:5b1fea5/2018-01-10T02:35:59.208Z,JVM:1.8.0_201 日志:- [2020-02-26T05:28:19,634 ][WARN ][o.e.d.z.ZenDiscovery ] [worker] 在 ping 期间发现的主节点不足(找到 [[]],但需要 [1]),再次 ping
-
你也可以添加yamls和配置文件吗?请将它们添加到问题正文中。
-
你现在可以看一下吗。
-
“在 ping 期间发现的主节点不足”看起来您的主节点已关闭。你的 k8s 是自托管的吗?如果您有兴趣学习 helm,那么使用 helm 图表部署弹性搜索集群非常容易。 github.com/helm/charts/tree/master/incubator/elasticsearch