【问题标题】:Unable to connect to mysql in Istio environmentIstio环境下无法连接mysql
【发布时间】:2020-06-11 16:31:58
【问题描述】:

我们已经在裸机服务器上配置了 Kubernetes 集群,使用 v1.15.1 和启用了 mTLS 的 Istio-1.4.0(演示)。 我们的 mysql 服务器位于 Azure VM 上的 K8s 集群之外。 现在,当我们在部署应用程序时注入 istio-proxy 时,我们无法通过 jdbc 连接到 mysql 服务器,并且还尝试了我的 mysql 客户端。但是,当通过重新部署删除 istio-proxy 时,我们能够立即连接而不会出现任何问题。

当通过许多关于 istio 和 mysql 的博客时,尝试删除默认的网格策略,但没有奏效。 istio faq 中的情况是 mysql 在 k8s 集群中注入了 istio。

【问题讨论】:

  • 考虑为外部 MySQL 添加一个 ServiceEntry(参见this post here)。
  • 嗨,就像@char 提到的使用ServiceEntry 是更简单的解决方案,而不是使mysql 连接mTLS 友好。但是我建议改用当前的documentation 示例。 2018 年的博客文章可能已经过时。你有什么 istio 版本?
  • 尝试同时设置values.global.mtls.auto=true 这将仅在可能的情况下使用 mtls
  • @char .. 我们尝试使用 ServiceEntry。首先,我们为我们的 mysql 服务器创建了一个服务和端点,并添加了 serviceentry 和 destinationrule (tls disabled)
  • @AnkitSaxena:使用istioctl manifest apply --set profile=demo \ --set values.global.mtls.auto=true 启用所讨论的设置。您是否尝试过仅使用 ServiceEntry、没有 DestinationRule 并在添加所有内容后重新启动 pod?

标签: kubernetes istio


【解决方案1】:

您可以通过配置 values.global.mtls.auto=true 为 istio 配置 auto-mtls(即它尽可能使用 mtls 并回退到其他连接

https://istio.io/docs/tasks/security/authentication/auto-mtls/

【讨论】:

    【解决方案2】:

    Serviceentry 和 destionation 规则对我的情况起作用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-04
      相关资源
      最近更新 更多