我們試圖在kubernetes/flannel/coreos集羣上運行Elasticsearch。kubernetes上的elasticsearch - 節點的發現
作爲法蘭絨does not support multicast,我們不能使用Zen多點傳送發現來允許節點找到對方,形成一個羣集並進行通信。
將所有kubernetes節點的IP地址硬編碼到ES-config文件中,我們可以使用另一種方法來協助發現嗎?可能使用etcd2或其他kubernetes兼容的發現服務?
我們試圖在kubernetes/flannel/coreos集羣上運行Elasticsearch。kubernetes上的elasticsearch - 節點的發現
作爲法蘭絨does not support multicast,我們不能使用Zen多點傳送發現來允許節點找到對方,形成一個羣集並進行通信。
將所有kubernetes節點的IP地址硬編碼到ES-config文件中,我們可以使用另一種方法來協助發現嗎?可能使用etcd2或其他kubernetes兼容的發現服務?
將容器放入Kubernetes服務中。 Kubernetes API提供了可用的「端點」API,其中列出了服務的所有成員的IP地址。當您縮放Pod的數量時,此端點集將動態縮小和增長。
您可以訪問端點與:通過Kubernetes API
kubectl get endpoints <service-name>
或直接,請參閱:
對於如何這對Cassandra的做了一個例子。
存在使用集羣發現的kubernetes API發現插件:
https://github.com/fabric8io/elasticsearch-cloud-kubernetes
安裝插件:
/usr/share/elasticsearch/bin/plugin -i io.fabric8/elasticsearch-cloud-kubernetes/1.3.0 --verbose
創建發現一個Kubernetes服務:
apiVersion: v1
kind: Service
metadata:
name: elasticsearch-cluster
spec:
ports:
- port: 9300
selector:
app: elasticsearch
And elasticsearch.yml
:
cloud.k8s.servicedns: elasticsearch-cluster
discovery.type: io.fabric8.elasticsearch.discovery.k8s.K8sDiscoveryModule
'對IP地址進行硬編碼的缺點':具體有多少個節點? [kubernetes-elasticsearch-cluster](https://github.com/pires/kubernetes-elasticsearch-cluster)可能有幫助嗎? – Val
ahh此刻只有兩個節點,但我們希望能夠根據需要進行擴展。我確實看了看那個引用的項目,但我不確定如何管理該類型配置中的持久存儲。 – DrGecko