如何在 Istio 上禁用 mtls?

2024-05-27

我在使用 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,我什至无法到达我的服务。 你有什么建议吗?


禁用 mtl

此 PeerAuthentication 是禁用 mtls 的正确方法。

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

有 istio文档 https://istio.io/latest/docs/tasks/security/authentication/authn-policy/#关于那个。


弹性搜索问题

根据 istio 文档:

要使用 Istio 运行 Elasticsearch,需要适当设置两个 Elasticsearch 配置参数:网络.bind_host and 网络.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 的网络设置 https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html#modules-network了解更多信息。

如果这不起作用,则存在两个 github 问题:

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

建议使用

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

有弹性搜索文档 https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-service-mesh-istio.html关于那个。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Istio 上禁用 mtls? 的相关文章

随机推荐