无法使用 Istio sidecar 从 pod 卷曲弹性搜索

Can't curl elasticsearch from pod with Istio sidecar

我在我的集​​群中安装了 Istio,在我的 pods 命名空间原型之一上安装了 sidecar。然后我在另一个命名空间中安装了 elasticsearch,该命名空间有 sidecar。问题是我无法从 proto 命名空间中的 pods 内部卷曲 elasticsearch,但我可以从完全相同的 pod 中执行此操作,但在另一个没有边车的命名空间中。

这是错误:

/app # curl -k https://elasticsearch-elasticsearch-cluster.logging.svc.cluster.local:9200 curl: (35) 连接到 elasticsearch-elasticsearch-cluster.logging.svc.cluster.local:9200

时发生未知 SSL 协议错误

有人知道这里的问题是什么吗?

尝试在服务规范中为端口 9200 指定一个以 tcp 开头的名称,例如 tcp-elastic-search-port,或者也将协议的端口指定为 TCP。它将指示 Istio 将该端口的流量视为 tcp。

这个问题可能与 Istio 端口处理有关,在协议方面 - 请参阅 https://istio.io/docs/setup/kubernetes/sidecar-injection.html#pod-spec-requirements

好的,我解决了这个问题。在不同类型的安装之后,以及在新的干净集群上,我通过从 istio master 分支安装 helm chart 并在 values.yaml 文件中激活自动 sidecar 注入来让它工作。

最新 istio 版本 0.7.1 的 helm chart 不工作,手动 sidecar 注入也不工作,所以我需要使用自动,通过在 helm chart 中激活它。

我不确定为什么它以前不起作用,我现在可以从另一个没有 sidecar 的命名空间卷曲我的 elasticsearch,并且出口规则按预期工作。

谢谢你的帮助:)