elasticsearch - Kubernetes + ELK : 将 kibana 连接到 elasticsearch 服务
问题描述
我有 Elasticsearch POD + SERVICE 和 Kibana POD + SERVICE。我正在尝试将我的 Kibana POD 连接到 Elasticsearch 服务,但出现连接错误。
这是我的 Kibaba POD 的 yaml:
apiVersion: v1
kind: Pod
metadata:
name: kibana
labels:
app: kibana
spec:
ports:
containers:
- name: kibana
image: kibana:6.6.1
command: ["/bin/sh"]
args: ["-c", "bin/kibana --elasticsearch.url='elasticsearch-service:9200'"]
我收到以下错误:
FATAL ValidationError: child "elasticsearch" fails because [child "hosts" fails because [single value of "hosts" fails because ["hosts" must be a valid uri with a scheme matching the http|https pattern]]]
据我了解,我收到错误是因为 elasticsearch.url 不是以 http/https 开头的。所以我尝试运行 args: ["-c", "bin/kibana --elasticsearch.url='http://elasticsearch-service:9200'"]
,但我也遇到了连接错误(我认为是因为服务并不意味着用 http/https 指向)。
这是 elasticsearch 服务的 yaml(效果很好):
apiVersion: v1
kind: Service
metadata:
name: elasticsearch-service
spec:
ports:
- port: 9200
name: serving
protocol: TCP
- port: 9300
name: node2node
protocol: TCP
selector:
app: elasticsearch
对于其他 POD,我可以连接到 elasticsearch-service:9200,但 Kibana 不支持 http/https。我怎样才能让它们连接起来?
解决方案
我设法通过添加来修复它:
env:
- name: ELASTICSEARCH_URL
value: "http://elasticsearch-service:9200"
- name: ELASTICSEARCH_PORT
value: "9200"
- name: SERVER_BASEPATH
value: /api/v1/namespaces/default/services/kibana-service:5601/proxy
- name: SERVER_HOST
value: "0.0.0.0"
真正解决的是 SERVER_BASEPATH 环境。
推荐阅读
- here-api - here.com api 密钥无法计算矩阵
- javascript - src更改时如何强制重新创建?
- c++ - 如何解释 C++ 字符串中的 \u 转义码?
- python-3.x - OSError: [WinError 10038] 使用 opcua.client.py 连接到 opcua 服务器尝试对不是套接字的东西进行操作
- omnet++ - omnet 中的模块出现在彼此之上
- python - 从标量数据格式的多维数组在python中创建Dataframe列
- java - 在jni中,调用者对象的被调用者函数参数是否可能为空值?
- python - ValueError: Tensor("ExponentialDecay_4:0", shape=(), dtype=float32)
- oracle - V$SQLAREA 表包含 SQL_FULLTEXT,如何在 SQL_FULLTEXT 中找到 SQL 的来源
- javascript - 旋转后如何使脸部正常?