步骤1.我在没有特使边车的情况下部署了redis。 https://github.com/kubernetes/charts/tree/master/stable/redis
在另一个没有特使的pod中运行regis-cli时,redis连接工作正常。 =>证明redis本身的功能。
步骤2.在另一个具有特使边车注入的吊舱中部署服务。
尝试从服务连接到redis时,无法建立连接。
规格: 目的地: 服务:" *" 端口: - 港口:6379 协议:redis
有没有人有建议/想法?
答案 0 :(得分:0)
您是否可以在启用了相互TLS的情况下设置istio
?
这可以解释为什么您无法从网格中的窗格连接到redis pod
(不是网格的一部分)。这是因为正在尝试连接到redis的pod上的边车会期待未提供的TLS通信。
答案 1 :(得分:0)
如果您使用Istio 0.3.0,则您遇到的问题由此PR https://github.com/istio/istio/pull/1915修复。在Istio 0.4.0中,此问题不存在。
或者,克隆https://github.com/kubernetes/charts/tree/master/stable/redis并编辑https://github.com/kubernetes/charts/blob/master/stable/redis/templates/svc.yaml#L24 - 将端口名称更改为" tcp"而不是" redis"。
答案 2 :(得分:0)
您将必须创建服务条目来连接启用了使节的服务中的redis,如下所示
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: external-svc-redis
spec:
hosts:
- "REDIS_ENDPOINT"
location: MESH_EXTERNAL
ports:
- number: 6379
name: http
protocol: REDIS
resolution: NONE
$ kubectl apply -f external-svc-redis.yaml