【问题标题】:Securing Nginx-Ingress > Istio-Ingress保护 Nginx-Ingress > Istio-Ingress
【发布时间】:2017-11-20 21:57:53
【问题描述】:

我有 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 环境示例中的。

【问题讨论】:

    标签: kubernetes istio


    【解决方案1】:

    因为我不在 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 进行分发。无需将它们绑定到特定机器。

    【讨论】:

    • 好主意,您可以将 istio 和 nginx/voyager/haproxy 放在同一个 pod 中,并通过 localhost 进行通信,而无需进入主机网络命名空间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 2019-09-25
    • 2020-08-09
    相关资源
    最近更新 更多