当前位置: 首页 > 面试题库 >

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

章宏峻
2023-03-14
问题内容

我尝试在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.html" target="_blank">yml:

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服务。

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

编辑:修复环境变量错字



 类似资料:
  • 问题内容: 我尝试创建Kibana和Elasticsearch,看来Kibana在识别Elasticsearch时遇到了麻烦。 这是我的步骤: 1)建立网络 2)运行Elasticsearch容器 3)运行Kibana容器 通过浏览器通过http:// localhost:9200 / 连接到Elasticsearch时,我得到JSON输出。 但是,当我打开HTTP://本地主机:5601 /我得

  • 我按照https://www.elastic.co/guide/en/elasticsearch/reference/6.5/docker.html和https://www.elastic.co/guide/en/kibana/6.5/docker.html但它似乎并没有很好地与kibana工作,ES工作正常。 我试着单独启动kibana,但最后我把它添加到了一个docker compose文件中

  • 我试图创建Kibana和Elasticsearch,似乎Kibana无法识别Elasticsearch。 以下是我的步骤: 1) 创建网络 2) 运行Elasticsearch容器 3) 运行Kibana容器 当我通过连接Elasticsearch时,我会得到一个JSON输出http://localhost:9200/通过我的浏览器。 但当我打开http://localhost:5601/我明白了

  • 问题内容: 我已经在RHEL7上安装了ES 7.5和Kibana 7.5,但是在启动Kibana并检查UI后,我看到了错误,“ Kibana服务器尚未准备好。” 检查Kibana日志,我发现它没有正确连接到ES。任何帮助表示赞赏! 这是 journalctl –unit kibana 的输出: Elasticsearch.yml Kibana.yml 另外,当我运行 ss -tunlp | gre

  • 我已经在RHEL7上安装了ES 7.5和Kibana 7.5,但是在启动Kibana并检查UI之后,我看到了错误,“Kibana服务器还没有准备好。” 检查Kibana日志,我看到它没有正确连接到ES。感谢任何帮助! 以下是journalctl的输出——单位kibana: 弹性搜索。yml 基巴纳。yml 此外,当我在Kibana启动期间运行ss-tunlp|grep 5601时,我看到Kiban

  • 我最近在Kubernetes启用了RBAC。因为,Jenkins(运行在Kubernetes上,在同一个Kubernetes上创建代理-豆荚)能够创建代理-豆荚,但无法通过端口50'000连接到JNLP。 我注意到的引用,但没有找到配置该引用的位置,因为它必须解析Kubernetes-Internal(Kube-DNS),因为端口没有从外部公开。 我注意到(并更新了)>>的配置,导致RBAC登录失