Kubernetes 出口网关没有';添加多个外部服务时无法正常工作

Kubernetes 出口网关没有';添加多个外部服务时无法正常工作,kubernetes,istio,Kubernetes,Istio,我试图定义多个外部服务(redis:AWS ElastiCache)来路由出口网关。参考配置了两个网关。我应用了以下配置,但它没有正常工作,我可以找到错误日志。似乎连接到这两个目的地只能转发到其中一个目的地(随机?) 这是一个bug还是有解决方案 apiVersion:networking.istio.io/v1alpha3 种类:网关 元数据: 名称:istio-EGERSSGATEWAY-redis-1 名称空间:测试 规格: 选择器: istio:出口网关 服务器: -端口: 姓名:red

我试图定义多个外部服务(redis:AWS ElastiCache)来路由出口网关。参考配置了两个网关。我应用了以下配置,但它没有正常工作,我可以找到错误日志。似乎连接到这两个目的地只能转发到其中一个目的地(随机?)

这是一个bug还是有解决方案

apiVersion:networking.istio.io/v1alpha3 种类:网关 元数据: 名称:istio-EGERSSGATEWAY-redis-1 名称空间:测试 规格: 选择器: istio:出口网关 服务器: -端口: 姓名:redis 电话:6379 协议:TCP 主持人: -“aaa.aaa.ng.0001.apne1.cache.amazonaws.com” --- apiVersion:networking.istio.io/v13 种类:ServiceEntry 元数据: 名称:出口-redis-1 名称空间:测试 规格: 主持人: -aaa.aaa.ng.0001.apne1.cache.amazonaws.com 端口: -名称:出口-redis-1 电话:6379 协议:TCP 位置:外部网格 解析:DNS --- apiVersion:networking.istio.io/v13 种类:虚拟服务 元数据: 名称:出口-redis-1 名称空间:测试 规格: 主持人: -aaa.aaa.ng.0001.apne1.cache.amazonaws.com 网关: -istio-EGERSSGATEWAY-redis-1 -网孔 tcp: -匹配: -网关: -网孔 港口:6379 路线: -目的地: 主机:istio-egressgateway.istio-system.svc.cluster.local 子集:出口-redis-1 端口: 电话:6379 -匹配: -网关: -istio-EGERSSGATEWAY-redis-1 港口:6379 路线: -目的地: 主机:aaa.aaa.ng.0001.apne1.cache.amazonaws.com 端口: 电话:6379 体重:100 --- apiVersion:networking.istio.io/v13 种类:命运法则 元数据: 名称:出口-redis-1 名称空间:测试 规格: 主机:istio-egressgateway.istio-system.svc.cluster.local 子集: -名称:出口-redis-1 --- apiVersion:networking.istio.io/v13 种类:网关 元数据: 名称:istio-EGERSSGATEWAY-redis-2 名称空间:测试 规格: 选择器: istio:出口网关 服务器: -端口: 姓名:redis 电话:6379 协议:TCP 主持人: -“bbb.bbb.clustercfg.apne1.cache.amazonaws.com” --- apiVersion:networking.istio.io/v13 种类:ServiceEntry 元数据: 名称:出口-redis-2 名称空间:测试 规格: 主持人: -bbb.bbb.clustercfg.apne1.cache.amazonaws.com 端口: -名称:出口-redis-2 电话:6379 协议:TCP 位置:外部网格 解析:DNS --- apiVersion:networking.istio.io/v13 种类:虚拟服务 元数据: 名称:出口-redis-2 名称空间:测试 规格: 主持人: -bbb.bbb.clustercfg.apne1.cache.amazonaws.com 网关: -istio-EGERSSGATEWAY-redis-2 -网孔 tcp: -匹配: -网关: -网孔 港口:6379 路线: -目的地: 主机:istio-egressgateway.istio-system.svc.cluster.local 子集:出口-redis-2 端口: 电话:6379 -匹配: -网关: -istio-EGERSSGATEWAY-redis-2 港口:6379 路线: -目的地: 主持人:bbb.bbb.clustercfg.apne1.cache.amazonaws.com 端口: 电话:6379 体重:100 --- apiVersion:networking.istio.io/v13 种类:命运法则 元数据: 名称:出口-redis-2 名称空间:测试 规格: 主机:istio-egressgateway.istio-system.svc.cluster.local 子集: -名称:出口-redis-2 Istio错误日志:

2020-07-14T08:24:42.803875Z#011信息#011ads#011推送状态:{
“导频\u冲突\u出站\u侦听器\u tcp\u超过\u当前\u tcp”:{
"0.0.0.0:6379": {
“代理”:“成员-11111-22222.测试”,
“消息”:“侦听器=0.0.0.0:6379接受TCP=aaa.aaa.clustercfg.apne1.cache.amazonaws.com拒绝TCP=bbb.bbb.ng.0001.apne1.cache.amazonaws.com TCPServices=1”
}
}
}
版本

Kubernetes:1.18.5
Istio:1.6.4
外部交通政策

REGISTRY\u仅限
在将网关的端口名更新为唯一后,它仍然无法工作

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: istio-egressgateway-redis-1
  namespace: qa2
spec:
  selector:
    istio: egressgateway
  servers:
  - port:
      name: egress-redis-1
      number: 6379
      protocol: TCP
    hosts:
    - "aaa.aaa.ng.0001.apne1.cache.amazonaws.com"
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: istio-egressgateway-redis-2
  namespace: qa2
spec:
  selector:
    istio: egressgateway
  servers:
  - port:
      name: egress-redis-2
      number: 6379
      protocol: TCP
    hosts:
    - "bbb.bbb.clustercfg.apne1.cache.amazonaws.com"

您所说的
是什么意思似乎连接到两个目的地都只转发到其中一个
?aaa.aaa有效,但bbb.bbb无效?你能在两台主机上显示curl-v的结果吗?您能否尝试将网关的名称从
redis
更改为前面提到的唯一名称?只是为了确保它的工作,因为这应该是固定的1.1中提到的?我的意思是,所有的aaa和bbb转发给aaa。有时,所有信息都转发给bbb。端口名称更改为唯一名称后,仍然不起作用。我更新了问题内容。我发现这是类似的,但社区成员想使用TLS而不是TCP,错误是相同的。关于这一点,howardjohn在那里提到了
,在Istio 1.6中,这个试点\u冲突\u出站\u侦听器\u tcp\u超过\u当前\u tcp不再是一个问题。据我们所知,仍然存在一些问题,因此我建议打开新的github发行版,并在那里提及上述发行版。另外,请看一看。您所说的
是什么意思,似乎连接到两个目的地只会转发到其中一个
?aaa.aaa有效,但bbb.bbb无效?你能在两台主机上显示curl-v的结果吗?您能否尝试将网关的名称从
redis
更改为前面提到的唯一名称?只是为了确保它的工作,因为这应该是固定的1.1中提到的?我的意思是,所有的aaa和bbb转发给aaa。有时,所有信息都转发给bbb。端口名称更改为唯一名称后,仍然不起作用。我更新了问题内容。我发现这是类似的,但社区成员想使用TLS而不是TCP,错误是相同的。关于这一点,howardjohn在那里提到了
,在Istio 1.6中,这个试点\u冲突\u出站\u侦听器\u tcp\u超过\u当前\u tcp不再是一个问题。就我们所能看到的情况来看,仍然有些不对劲