我正在尝试将弹性搜索盒连接到端口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/'
我所做的是,正在运行:
kubectl run elasticsearch --image=elasticsearch:6.6.1 -labels="elasticsearch" --env="discovery.type=single-node" --port=9200 --port=9300
并运行以下服务:
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
这很奇怪,因为当我仅使用端口9200时,所有工作正常,但是当我使用9300时,它会失败。
答案 0 :(得分:2)
端口9300是二进制协议(不是http),用于节点通信。只有端口9200暴露了其余的Api
两个Java客户端都使用本机通过端口9300与集群通信 Elasticsearch传输协议。集群中的节点也 通过端口9300相互通信。如果此端口未打开, 您的节点将无法形成集群。