如何禁用Instio上的mtls



我在使用Istio连接Kubernetes上的两个服务时遇到问题。我的服务向elasticsearch发出POST请求。

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,我甚至无法联系到我的服务。你有什么建议吗?

禁用mtls

此对等身份验证是禁用mtls的正确方法。

apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
name: "default"
namespace: "istio-system"
spec:
mtls:
mode: DISABLE

有istio的相关文档。


弹性搜索问题

根据istio文档:

要使用Istio运行Elasticsearch,需要适当设置两个Elasticsearch配置参数:network.bind_hostnetwork.publish_host默认情况下,这些参数设置为network.host参数。如果network.host设置为0.0.0.0,Elasticsearch很可能会选择pod IP作为发布地址,无需进一步配置。

如果默认配置不起作用,则可以将network.bind_host设置为0.0.0.0或localhost(127.0.0.1(,并将network.publish_host设置成pod IP。例如:

...
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
...

有关详细信息,请参阅Elasticsearch的网络设置。

如果这不起作用,有两个github问题:

  • https://github.com/istio/istio/issues/14662#issuecomment-723669123
  • https://github.com/elastic/cloud-on-k8s/issues/2770

建议使用

annotations:
traffic.sidecar.istio.io/excludeOutboundPorts: "" 
traffic.sidecar.istio.io/excludeInboundPorts: ""

有关于这方面的弹性搜索文档。

相关内容

  • 没有找到相关文章

最新更新