【发布时间】:2020-10-28 17:27:21
【问题描述】:
我有一个在 Kubernetes 集群中运行的 NodeJs 应用程序(我使用的是microk8s)。我还关注official steps 在 Kubernetes 上设置 Elasticsearch。
问题
但我无法连接到 Elasticsearch 集群。我收到此错误:
ConnectionError: self signed certificate in certificate chain
这是我的联系人code snippet:
const client = new elasticsearch.Client({
node: process.env.elasticsearch_node,
// https://elasticsearch-es-http.default.svc.cluster.local:9200
});
最小复制
我在这里创建了此问题的最小复制:https://github.com/flolu/elasticsearch-k8s-connection。 (设置说明在 README 中)
基本上,在 Docker compose 中运行 Elasticsearch 时一切正常,但在 Kubernetes 中运行时无法连接。
这可能是因为我没有正确设置 TLS 证书,但我没有找到任何相关信息。 我是在创建 ES 客户端时在我的 NodeJs 应用程序中配置它还是在集群级别配置它?
【问题讨论】:
-
在使用 9200 端口时将 elasticsearch url 协议从 https 更改为 http。
-
@VamshiSiddarth 哇哦,我没试过。不幸的是,我现在得到
ConnectionError: socket hang up(请参阅更新的问题) -
您能否尝试将
xpack.security.transport.ssl.enabled: 'false'添加到您的配置中以进行elasticsearch、重新部署和检查。 -
我仍然得到“socket hang up”
-
可以尝试在你的 nodejs 代码中配置连接超时。看看它是否有帮助。除此之外,我不确定:)
标签: node.js typescript elasticsearch kubernetes microk8s