我使用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。谢谢。
暂无答案!
目前还没有任何答案,快来回答吧!