无法在Kubernetes单模上连接elasticsearch和kibana
我尝试在kubernetes上运行elasticsearch和kibana。我跑了:
kubectl run elasticsearch --image=elasticsearch:6.6.1 --env="discovery.type=single-node" --port=9200 --port=9300kubectl 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: kibanaserver.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: v1kind: 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