关于kubernetes的弹性搜索 - 节点的发现

DrG*_*cko 3 elasticsearch kubernetes consul

我们试图在kubernetes/flannel/coreos集群之上运行Elasticsearch.

由于法兰绒不支持组播,我们不能使用Zen组播发现来允许节点相互发现,形成集群并进行通信.

如果没有将所有kubernetes节点的IP地址硬编码到ES-config文件中,我们可以使用另一种方法来帮助发现吗?可能使用etcd2或其他一些与kubernetes兼容的发现服务?

小智 6

6.2.0 版本支持 kubernetes 自动发现

更新您的 elasticsearch.yml 如下

discovery.zen.ping.unicast.hosts: "kubernetes 服务名称"


kjv*_*kjv 5

有一个发现插件使用kubernetes API进行集群发现:

https://github.com/fabric8io/elasticsearch-cloud-kubernetes

安装插件:

/usr/share/elasticsearch/bin/plugin -i io.fabric8/elasticsearch-cloud-kubernetes/1.3.0 --verbose
Run Code Online (Sandbox Code Playgroud)

为发现创建Kubernetes服务:

apiVersion: v1
kind: Service
metadata:
  name: elasticsearch-cluster
spec:
  ports:
    - port: 9300
  selector:
    app: elasticsearch
Run Code Online (Sandbox Code Playgroud)

并且elasticsearch.yml:

cloud.k8s.servicedns: elasticsearch-cluster
discovery.type: io.fabric8.elasticsearch.discovery.k8s.K8sDiscoveryModule
Run Code Online (Sandbox Code Playgroud)