1

我们有一个问题,在 Istio Service Mesh 中连接到 AWS RDS 会导致upstream connect error or disconnect/reset before header. 我们的出口规则如下

 apiVersion: config.istio.io/v1alpha2
 kind: EgressRule
 metadata:
     namespace: <our-namespace>
     name: rds-egress-rule-with
 spec:
     destination:
     service: <RDS End point> 
 ports:
     - port: 80
       protocol: http
     - port: 443
       protocol: https
     - port: 3306
       protocol: https 

与 MySQL 的连接在 EC2 中的独立 MySQL 中运行良好。在没有 Istio 的情况下,与 AWS RDS 的连接可以正常工作。该问题仅出现在 Istio Service Mesh 中。

我们在 Disabled Mutual TLS 配置中使用 istio。

4

1 回答 1

2

EgressRule定义中的协议应该是tcp. service应包含 IP 地址或以 CIDR 表示法表示的 IP 地址范围。

或者,您可以使用 , 的--includeIPRanges标志istioctl kube-inject来指定 Istio 处理哪些 IP 范围。Istio 不会干扰未包含的 IP 地址,只会允许流量通过。

参考:

  1. https://istio.io/latest/blog/2018/egress-tcp/
  2. https://istio.io/latest/docs/tasks/traffic-management/egress/egress-control/#direct-access-to-external-services
于 2018-05-14T06:52:13.887 回答