我很难将Kubernetes上的两个服务与Istio连接起来。我的服务向elasticsearch发送帖子请求。
2020-11-18T21:51:53.758079131Z org.elasticsearch.client.ResponseException: method [POST], host [http://elasticsearch:9200], URI [/_bulk?timeout=1m], status line [HTTP/1.1 503 Service Unavailable]
2020-11-18T21:51:53.758087238Z upstream connect error or disconnect/reset before headers. reset reason: connection failure我读过一些关于这方面的问题/GitHub问题,其中一个可能的原因可能是mtls,那么我如何禁用它呢?
我试着用这个:
apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
name: "default"
namespace: "istio-system"
spec:
mtls:
mode: DISABLE但是有了这个PeerAuthentication,我连我的服务都达不到。你有什么建议吗?
发布于 2020-11-23 08:41:48
禁用mtls
此PeerAuthentication是禁用mtls的正确方法。
apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
name: "default"
namespace: "istio-system"
spec:
mtls:
mode: DISABLE关于这一点,文档是有争议的。
Elasticsearch问题
根据istio文件:
在使用Istio运行Elasticsearch时,需要适当设置两个Elasticsearch配置参数:network.bind_host和network.publish_host.默认情况下,这些参数被设置为network.host参数。如果network.host设置为0.0.0.0,那么Elasticsearch很可能会将pod作为发布地址,并且不需要进一步的配置。 如果默认配置不起作用,可以将network.bind_host设置为0.0.0.0或localhost (127.0.0.1),并将network.publish_host设置为pod。例如:
...
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0
env:
- name: network.bind_host
value: 127.0.0.1
- name: network.publish_host
valueFrom:
fieldRef:
fieldPath: status.podIP
...有关更多信息,请参考弹性搜索的网络设置。
如果这样做行不通,那么有两个github问题:
建议使用
annotations:
traffic.sidecar.istio.io/excludeOutboundPorts: ""
traffic.sidecar.istio.io/excludeInboundPorts: ""这是关于elasticsearch的文档。
https://stackoverflow.com/questions/64902148
复制相似问题