在Istio中连接到MySQL(AWS RDS)

时间:2018-05-14 06:26:08

标签: mysql amazon-web-services kubernetes amazon-rds istio

我们遇到的问题是,在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中。

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

1 个答案:

答案 0 :(得分:2)

EgressRule定义中的协议应为tcpservice应包含CIDR表示法中的IP地址或一系列IP地址。

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

参考文献:

  1. https://istio.io/docs/tasks/traffic-management/egress-tcp.html
  2. https://istio.io/blog/2018/egress-tcp.html
  3. https://istio.io/docs/tasks/traffic-management/egress.html#calling-external-services-directly