我已经在k8s上部署了envoy容器作为Istio部署。 每个Envoy代理容器都作为K8s的容器内应用程序容器旁边的“sidecar”安装。从Envoy后面的容器与Redis服务器通信
我能够从应用程序内启动HTTP通信,但在尝试联系Redis服务器(另一个特使代理的另一个容器)时,我无法连接并从envoy接收HTTP/1.1 400 Bad Request
消息。
在检查特使的日志我可以看到以下消息每当这个连接通过特使:HTTP/1.1" 0 - 0 0 0 "_"."_"."_"."_""
据我明白,Redis命令被使用纯TCP传输的w/o HTTP发送。 Envoy是否有可能只看到HTTP流量并拒绝TCP流量? 假设我的理解是正确的,是否有方法使用Istio更改此行为并接受并处理通用TCP流量?
以下是我的相关部署YAML文件:
apiVersion: v1
kind: Service
metadata:
name: redis
namespace: default
labels:
component: redis
role: client
spec:
selector:
app: redis
ports:
- name: http
port: 6379
targetPort: 6379
protocol: TCP
type: ClusterIP
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: redis-db
spec:
replicas: 1
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis:3.2-alpine
imagePullPolicy: IfNotPresent
ports:
- containerPort: 6379
感谢