0

步骤 1. 我在没有 envoy sidecar 的情况下部署了 redis。 https://github.com/kubernetes/charts/tree/master/stable/redis

在另一个没有特使的 pod 中运行 regis-cli 时,redis 连接工作正常。=> 证明了 redis 本身的功能。

步骤 2. 在另一个具有 envoy sidecar 注入的 pod 中部署服务。

尝试从服务连接到 redis 时,无法建立连接。

规格:目的地:服务:“*”端口:-端口:6379 协议:redis

有人有建议/想法吗?

4

3 回答 3

0

您是否设置了istio启用双向 TLS?
这可以解释为什么您无法redis pod从网格中的 pod 连接到(不是网格的一部分)。这是因为 pod 上尝试连接到 redis 的 sidecar 会期望没有给出的 TLS 通信。

于 2018-01-03T11:43:18.923 回答
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

于 2019-10-12T15:44:32.127 回答
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”。

于 2018-01-08T08:16:53.610 回答