【问题标题】:Is selective Istio mTLS possible?选择性 Istio mTLS 可行吗?
【发布时间】:2020-02-02 08:12:04
【问题描述】:

我在 Kubernetes 1.15.9 上运行了 Istio 1.4.0。我正在尝试实现以下目标,但我阅读 Istio 文档的次数越多,我就越感到困惑。让我简单地说。

第一件事是,我想要 mTLS 以获得最大的服务(如果可能的话)。

我有一个在 9300 上公开了服务的 elasticsearch-master pod。我有一个在 9200 和 9300 上公开了服务的 elasticsearch-data pod。当我启用了 Istio 的默认自动 mTLS 时,这两个 pod 都运行良好并且一个健康的 ES 集群启动。我认为这是因为 ES 主节点和数据节点通过端口 9300 进行通信。另外,我不想从 K8S 集群外部访问任何这些 ES pod。

现在,我想启动一个在 5601 上公开服务的 Kibana pod。当我在启用 Istio 的默认自动 mTLS 的情况下启动 Kibana pod 时,它无法启动。因为它无法连接到 9200 上的 elasticsearch-data 服务。我收到各种 SSL 错误(可能是因为整个 mTLS 的事情?)。我不知道是否有可能与整个 Istio 的 Automatic mTLS 启用连接。另外,我想从 K8S 集群外部访问这个 Kibana。

感谢您的帮助。 谢谢。

  • 阿吉特

【问题讨论】:

  • 您可以在您的问题中添加minimal reproducible example 吗?即使 Istio 在 TLS 传输中嵌入服务之间的调用,从客户端的角度来看,它们也是在进行普通的 HTTP 调用;您应该使用http://... URL(而不是https://...)配置 Kibana。
  • 我们主要结合我们的 Kubernetes Operator 来解决这个问题,请参阅描述 github.com/elastic/cloud-on-k8s/issues/…。要么直接使用它,要么重用正确的绑定和健康检查来构建你自己的(如果你真的需要的话)。
  • 看看这个kibana guide。如果这能回答您的问题,请告诉我。
  • @xeraa 是的,从 Istio 中排除端口 9300 将使 ES 正常运行。但是 Kibana 无法连接到 9200 上的 ES。
  • @DavidMaze 当我使用 ES 的 http URL 启动 Kibana 时,它失败了。因为(我的猜测),它首先命中 envoy 代理,因为 mTLS STRICT 需要 TLS 数据。

标签: elasticsearch kubernetes istio


【解决方案1】:

Kibana 仅使用http URL。 但是为了使 elasticsearch 主节点和节点相互通信,我必须将端口 9300 放在 Istio 的排除列表中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-09
    • 2020-11-13
    • 2019-06-06
    • 2021-11-17
    • 2020-11-02
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    相关资源
    最近更新 更多