0

我有 Istio Ingress,它处理进入微服务的流量,微服务之间的流量在 ISTIO 域内被加密。但我不想将 ISTIO 入口暴露给公众。

因此尝试部署 NGINX 或 HAPROXY 入口(使用 https 证书)并将它们指向 ISTIO 入口,一切都运行良好。

我现在唯一担心的是 NGINX INGRESS(https 术语)> ISTIO INGRESS 之间的流量没有加密。

在 Istio 上获得完全加密流量但使用 NGINX/HAPROXY 入口的常用方法是什么。

我想一种方法是将 HAPROXY tcp 模式转换为 ISTIO 入口,并在 Istio 入口上提供证书。没有尝试过,但它应该可以工作。疯狂的想法是在 ISTIO mash 中运行 NGINX 入口,但是我会失去一些 Istio Ingress 功能。

推荐的方式或任何建议是什么。通常 Istio 是如何暴露在一些真实的 Prod 环境示例中的。

4

1 回答 1

0

由于我不在 voyager 实例上使用云负载均衡器,而是在 Host-Port 上公开 Voyager/Haproxy

我通过 DeamonSet/node-selector(和 taints)在称为前端的同一台机器上配置 Voyager(HostPort)和 Istio(HostPort)。然后只是指示 Voyager 使用我指定的 Istio HostPort 端口对环回/本地主机进行负载平衡。

 backendRule:
 - 'server local-istio localhost:30280'

这样一来,Voyager/Haproxy 和 Istio Ingress 之间的网络就不会出现未加密的流量,因为它们现在在同一主机上进行通信。我有 2 个前端节点,女巫正在负载平衡,所以我有冗余。但它是一种即兴创作,打破了 Kubernetes 的逻辑。另一方面,它工作得很好。

其他解决方案是在 Istio 上使用自签名证书,而不仅仅是将 Voyager/Haproxy 指向 Istio 实例。但这需要多次终止,因为 Voyager 也在终止 Https。这样做的好处是您可以将 Voyager 和 Istio 实例留给 Kubernetes 进行分发。无需将它们绑定到特定机器。

于 2017-11-20T13:38:33.823 回答