我已經在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
感謝