如何使用istio连接到集群外的redis?

yjghlzjz  于 2021-06-10  发布在  Redis
关注(0)|答案(0)|浏览(427)

我使用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

我可以使用kubectl连接到它,但是现在我想在本地机器中使用redis cli并直接连接到它。然后,我使用istio创建了一个网关和一个虚拟服务:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: redis-gateway
  namespace: istio-system
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: redis-port
      protocol: TCP
    hosts:
    - redis-hm.myhost.com.br
----------------------------------------------------------------
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: redis-virtual-service
  namespace: istio-system
spec:
  hosts:
  - redis-hm.myhost.com.br
  gateways:
  - istio-system/redis-gateway
  tcp:
    - route:
      - destination:
          host: redis-master.redis-system.svc.cluster.local
          port:
            number: 6379

当我使用以下命令时,它会连接到主机:

redis-cli -h redis-hm.myhost.com.br -p 80 -a mypassword

但当我使用ping命令时,它返回:

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

如果可能的话,我想解决这个问题,只使用yml文件将应用使用kubectl没有编辑任何在istio。谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题