Elasticsearch Kubernetes pod - 无法连接到端口 9300

Yag*_*gel 1 elasticsearch kubernetes

我正在尝试将我的 Elastic Search Pod 连接到端口 9200 和 9300。当我转到:

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

我看到以下错误:

Error: 'net/http: HTTP/1.x transport connection broken: malformed HTTP status code "is"'
Trying to reach: 'http://172.17.0.5:9300/'
Run Code Online (Sandbox Code Playgroud)

我所做的是,运行:

kubectl run elasticsearch --image=elasticsearch:6.6.1 -labels="elasticsearch" --env="discovery.type=single-node" --port=9200 --port=9300
Run Code Online (Sandbox Code Playgroud)

并运行以下服务:

kind: Service
apiVersion: v1
metadata:
  name: elasticsearch
spec:
  selector:
    host: elasticsearch
    subdomain: for-kibana
    app: elasticsearch
  ports:
  - protocol: TCP
    name: serving
    port: 9200
    targetPort: 9200
  - protocol: TCP
    name: node2node
    port: 9300
    targetPort: 9300
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为当我只使用端口 9200 时,一切正常,但是当我使用 9300 端口运行时,它会失败。

Ami*_*tyo 5

端口 9300 是二进制协议(不是 http),用于节点通信。仅端口 9200 暴露了 Rest Api

文档中:

两个 Java 客户端都使用本机 Elasticsearch 传输协议通过端口 9300 与集群通信。集群中的节点还通过端口 9300 相互通信。如果该端口未打开,您的节点将无法形成集群。