Instio에서 MTL을 비활성화하는 방법은 무엇입니까?
Kubernetes의 두 서비스를 Istio와 연결하는 데 문제가 있습니다. 내 서비스는 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 비활성화
이 PeerAuthentication은 mtls를 비활성화하는 올바른 방법입니다.
apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
name: "default"
namespace: "istio-system"
spec:
mtls:
mode: DISABLE
그것에 대한 istio 문서 가 있습니다.
Elasticsearch 문제
istio 문서에 따르면 :
Istio로 Elasticsearch를 실행하기 위해 적절하게 설정해야하는 두 가지 Elasticsearch 구성 매개 변수가 있습니다 : network.bind_host 및 network.publish_host . 기본적으로 이러한 매개 변수는 network.host 매개 변수로 설정됩니다. network.host가 0.0.0.0으로 설정된 경우 Elasticsearch는 대부분 게시 주소로 포드 IP를 선택하므로 추가 구성이 필요하지 않습니다.
기본 구성이 작동하지 않으면 network.bind_host를 0.0.0.0 또는 localhost (127.0.0.1)로 설정하고 network.publish_host를 포드 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: ""
그것에 대한 elasticsearch 문서 가 있습니다.