![](/img/trans.png)
[英]Using Istio, is there a way to route ingress to a k8s cluster service that is not running an envoy sidecar?
[英]How to connect between one service sidecar in Istio with NATS cluster
我創建了一個沒有注入 Istio 的 NATS 集群。
apiVersion: nats.io/v1alpha2
kind: NatsCluster
metadata:
name: nats
spec:
size: 2
pod:
annotations:
sidecar.istio.io/inject: "false"
version: "2.0.0"
現在我有一個 sidecar istio,連接到上面的 Nats 集群,但似乎 istio 斷開了連接。 我的應用程序上的 nats 客戶端關閉,並且 Nats 服務器通知:“客戶端解析器錯誤,狀態 = 0...” 原因是 nats 集群和 sidecar 之間沒有 mtls? 我該如何解決這個問題?
對於 istio 1.8
nats 和 nats 流媒體 ymal 可以在
https://github.com/nats-io/nats-operator
https://github.com/nats-io/nats-streaming-operator
如果您不通過 kubernetes 集群外部的節點端口進行連接。 您只需使用默認的 istio 設置並為 nats pod 注入 sidecar。 有用。 但是如果你想從外部通過節點端口連接 nats。 您需要禁用 mtls。 我的設置是默認的 mtls,nats 和 nats 流注入邊車的 pod。 並且 nats 只接受純文本的流量,而 nats 只發送純文本的流量。
添加以下對等身份驗證:
apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
name: "nats"
spec:
selector:
matchLabels:
app: nats
mtls:
mode: DISABLE
---
apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
name: "nats-streaming"
spec:
selector:
matchLabels:
app: nats-streaming
mtls:
mode: DISABLE
添加以下目標規則:
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: nats
spec:
host: "nats-server.acm.svc.cluster.local"
trafficPolicy:
tls:
mode: DISABLE
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: nats-server-nodeport
spec:
host: "nats-server-nodeport.acm.svc.cluster.local"
trafficPolicy:
tls:
mode: DISABLE
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: nats-server-mgmt
spec:
host: "nats-server-mgmt.acm.svc.cluster.local"
trafficPolicy:
tls:
mode: DISABLE
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.