How can I have my Kibana server talk with my Elastic server in Kubernetes environment?

I've already asked this question on StackOverflow, but let me paraphrase it

I'm trying to deploy Elastic and Kibana in a Kubernetes cluster.

I have installed Elastic using Helm chart :

helm repo add elastic
helm repo update
helm install stable/elasticsearch --namespace elastic --name elasticsearch --set imageTag=6.5.4

And Kibana using Helm chart :

helm install elastic/kibana --namespace elastic --name kibana --set imageTag=6.5.4,elasticsearchURL=http://elasticsearch-client.elastic.svc.cluster.local:9200

I've checked from my Kibana pod, and this URL is reachable and produce the following result

curl -v http://elasticsearch-client:9200
* About to connect() to elasticsearch-client port 9200 (#0)
*   Trying
* Connected to elasticsearch-client ( port 9200 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: elasticsearch-client:9200
> Accept: */*
< HTTP/1.1 200 OK
< content-type: application/json; charset=UTF-8
< content-length: 519
  "name" : "elasticsearch-client-8666954ffb-kthcx",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "-MT_zbKySiad0jDJVc1ViQ",
  "version" : {
    "number" : "6.5.4",
    "build_flavor" : "oss",
    "build_type" : "tar",
    "build_hash" : "d2ef93d",
    "build_date" : "2018-12-17T21:17:40.758843Z",
    "build_snapshot" : false,
    "lucene_version" : "7.5.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  "tagline" : "You Know, for Search"

The command line used in the Kibana pod to start (generated by the helm chart) is

/usr/share/kibana/bin/../node/bin/node --no-warnings /usr/share/kibana/bin/../src/cli --cpu.cgroup.path.override=/ --cpuacct.cgroup.path.override=/ --elasticsearch.url=http://elasticsearch-client:9200

So it seems the Elastic cluster url is the right one, and reachable.

However, when I show the UI in my browser, I get the following page

My Kibana UI seems to indicates an error and an invalid version

So to sum up, both versions are identical :

ElasticSearch url is correct, but Kibana don't want to access ElasticSearch

What is specially interesting is the oldest answer, which expose a situation I can reproduce : when using the helm chart, I can set the elasticsearch.url. But it seems like the kibana application in fact uses the elasticsearch property, which can't be set from the helm chart. So, what can I do to have Kibana working without resort to using directly the docker image in a deployment (in other words, while continuing to use the kibana helm chart) ?

Oh damn, it appear switching to the kuibana-oss image did the trick. I however read before all the docs, and not any one mentionned that. Is it possible to add a log message to have things clear in case of error ?



I agree the wording on this page could be a bit more informative and link to the page that explains the difference between the 'default distribution' (also known as Basic) and the OSS version of the Elastic Stack.

Since you're running Elasticsearch yourself, I'd suggest you try swapping out the elasticsearch-oss image for the elasticsearch one (and kibana-oss as well). This version is still free for commercial use but includes many more features in Kibana and Elasticsearch than you'll find in our OSS version.


This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.