我在没有注入到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"现在我有一个侧面的istio,连接到上面的Nats集群,但似乎是切断了连接。我的nats客户端在应用程序上关闭,并且Nats服务器注意到:“客户端解析器错误,state=0 ...”原因是在nats集群和sidecar之间没有mtls吗?我如何解决这个问题?
发布于 2020-03-13 14:33:28
对于istio 1.8
nats和nats流ymal可以在
https://github.com/nats-io/nats-operator
https://github.com/nats-io/nats-streaming-operator
如果您不是通过kubernetes集群外部的节点端口连接。您只需使用默认的istio设置并为nats注入sidecar即可。它起作用了。但是如果您想通过节点端口从外部连接nats。您需要禁用mtls。我的设置是默认mtls、nats的pods和nats inject sidecar。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: DISABLEhttps://stackoverflow.com/questions/58336530
复制相似问题