如何使用Istio连接到集群外的Redis?

如何使用Istio连接到集群外的Redis?,redis,google-kubernetes-engine,istio,Redis,Google Kubernetes Engine,Istio,我使用helm在我的Google Kubernetes引擎集群中安装了Redis,它正在工作: kubectl get svc -n redis-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE redis-headless ClusterIP None <none> 6379/TCP 99d redis-master Cl

我使用helm在我的Google Kubernetes引擎集群中安装了Redis,它正在工作:

kubectl get svc -n redis-system

NAME             TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
redis-headless   ClusterIP   None          <none>        6379/TCP   99d
redis-master     ClusterIP   10.0.30.29    <none>        6379/TCP   99d
redis-slave      ClusterIP   10.0.31.102   <none>        6379/TCP   99d
当我使用以下命令时,它将连接到主机:

redis-cli -h redis-hm.myhost.com.br -p 80 -a mypassword
但是当我使用命令ping时,它返回:

Error: Protocol error, got "H" as reply type byte

如果可能的话,我想只使用yml文件来解决这个问题,而不用在Istio中编辑任何东西。谢谢。

您在redis cli中连接并执行命令,唯一不起作用的是ping,对吗?请描述您正在使用的所有步骤和命令。我使用的所有命令都返回错误:协议错误,回复类型为byteHum,似乎无法访问redis服务器。尝试使用端口转发以确保redis服务器正常工作,例如:
kubectl port forwared svc/redis master 6379:6379
这将端口6379映射到本地主机。尝试使用redis cli-h localhost-a mypassword进行连接。使用istio有什么特殊原因吗?让我知道它是否工作。我的集群使用Istio,每个请求都通过Istio入口网关。我已经尝试了port forward,但没有成功。我尝试了复制您的案例,但没有得到相同的问题。主机从何处解析?此外,我还尝试使用portfoward连接,它对我有效。我正在使用GKE启用istio,由helm部署redis。请分享更多关于如何重现相同行为的详细信息?您在redis cli中连接并执行命令,唯一不起作用的是ping,对吗?请描述您正在使用的所有步骤和命令。我使用的所有命令都返回错误:协议错误,回复类型为byteHum,似乎无法访问redis服务器。尝试使用端口转发以确保redis服务器正常工作,例如:
kubectl port forwared svc/redis master 6379:6379
这将端口6379映射到本地主机。尝试使用redis cli-h localhost-a mypassword进行连接。使用istio有什么特殊原因吗?让我知道它是否工作。我的集群使用Istio,每个请求都通过Istio入口网关。我已经尝试了port forward,但没有成功。我尝试了复制您的案例,但没有得到相同的问题。主机从何处解析?此外,我还尝试使用portfoward连接,它对我有效。我正在使用GKE启用istio,由helm部署redis。请分享更多关于如何重现相同行为的细节?
Error: Protocol error, got "H" as reply type byte