无法在Kubernetes单模上连接elasticsearch和kibana

我尝试在kubernetes上运行elasticsearch和kibana。我跑了:

kubectl run elasticsearch --image=elasticsearch:6.6.1 --env="discovery.type=single-node" --port=9200 --port=9300

kubectl run kibana --image=kibana:6.6.1 --port=5601

然后我跑$kubectl proxy

http://localhost:$IP_FROM_KUBECTL_PROXY(usually 8081)/api/v1/namespaces/default/pods/$POD_NAME/proxy/

当我进入elasticsearch pod时,一切看起来都很好,但是当我进入kibana时,该应用程序无法运行(我看到“

Kibana服务器尚未准备就绪”以表示无限)。

kibana的日志如下:

{"type":"log","@timestamp":"2019-03-02T10:38:47Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"No living connections"}

{"type":"log","@timestamp":"2019-03-02T10:38:49Z","tags":["warning","elasticsearch","admin"],"pid":1,"message":"Unable to revive connection: http://elasticsearch:9200/"}

这是kibana pod上的kibana.yml:

来自kibana-docker的默认Kibana配置。

server.name: kibana

server.host: "0"

elasticsearch.url: http://elasticsearch:9200

xpack.monitoring.ui.container.elasticsearch.enabled: true

我对Kubernetes相当陌生,我不知道为什么他们不能彼此交谈。

回答:

Kibana向您说明了什么问题:

{“ type”:“ log”,“ @ timestamp”:“ 2019-03-02T10:38:49Z”,“ tags”:[“ warning”,“

elasticsearch”,“ admin”],“ pid”:1, “ message”:“无法恢复连接:http://

elasticsearch:9200 / ”}

您的名字pod elasticsearch对于kubernetes来说还不够。

您应该按照Amitio的说明进行服务。这是kibana和elasticsearch在同一名称空间中运行的情况。

如果kibana和elasticsearch在不同的命名空间中运行,则将为服务编写完整的DNS名称:elasticsearch.my-

namespace.svc.cluster.local

如果您要在同一个Pod中运行elasticsearch和kibana。然后localhost:9200将能够查询。

并根据您的情况。当Elasticsearch运行时,当1-2-3-4是Pod的IP地址(点号由短划线代替)时,您可以用作ELASTICSEARCH_URL

pod DNS名称:1-2-3-4.default.pod.cluster.local。

如果在创建elasticsearch时使用主机名:

apiVersion: v1

kind: Pod

metadata:

name: elasticsearch

labels:

name: elasticsearch-single

spec:

hostname: elasticsearch

subdomain: for-kibana

containers:

- image: elasticsearch:6.6.1

name: elasticsearch

您将能够发送ELASTICSEARCH_URL pod DNS名称:elasticsearch.for-

kibana.default.svc.cluster.local服务。

您可以在这里找到所有信息

编辑:修复环境变量错字

以上是 无法在Kubernetes单模上连接elasticsearch和kibana 的全部内容, 来源链接: utcz.com/qa/424742.html

回到顶部