【问题标题】:Connection to MySQL (AWS RDS) in Istio在 Istio 中连接到 MySQL (AWS RDS)
【发布时间】:2018-10-23 18:01:45
【问题描述】:

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

 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。

【问题讨论】:

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


    【解决方案1】:

    EgressRule 定义中的协议应为tcpservice 应包含 IP 地址或以 CIDR 表示法表示的 IP 地址范围。

    或者,您可以使用 istioctl kube-inject--includeIPRanges 标志来指定 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

    【讨论】:

    • 问题是 AWS RDS 没有给你机器的 IP 和 CIDR 。 @vadim-eisenberg
    • 在这种情况下,您可以使用istioctl kube-inject--includeIPRanges 标志,参见istio.io/docs/tasks/traffic-management/…
    • 我们可以通过自动侧车注射来做到吗?
    • 我不熟悉通过 --includeIPRanges 选项使用自动边车注入的方法。
    猜你喜欢
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    • 2018-05-13
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    相关资源
    最近更新 更多