我想在运行在kubernetes集群中的不同服务之间实现TLS相互认证,并且我发现Istio是实现此目标的不错的解决方案,无需对代码进行任何更改。
我正在尝试使用Istio sidecar注入(inject)在群集内运行的服务之间进行TLS相互身份验证。

  • 外部流量通过nginx入口 Controller 进入网格。我们希望继续使用它而不是Istio入口 Controller (我们希望进行尽可能小的更改)。
  • 禁用Istio Sidecar注入(inject)后,服务能够正确相互通信。但是,一旦我在应用程序的命名空间中启用了sidecar,该应用程序便不再能够处理请求(我猜到传入的请求已由特使sidecar代理丢弃)。

  • kubernetes - Istio |不使用Istio入口网关的TLS双向身份验证-LMLPHP
    我想做的事:
  • 在 namespace 2(nginx入口 Controller ,服务1和服务2)上启用istio sidecar代理注入(inject),以便所有服务通过TLS相互身份验证相互通信。

  • 我不想做什么:
  • 在Nginx入口 Controller 上启用istio sidecar代理注入(inject)(我不想对其进行任何更改,因为它用作其他多个工作负载的前端)。

  • 几周来一直没有运气,我一直在努力使它工作。社区的任何帮助将不胜感激。

    最佳答案


    AFAIK如果您已在命名空间2中启用注入(inject),则此处的服务已启用mTLS。从istio 1.5版本开始默认启用。有与此相关的docs

    在此处查看有关服务之间的MTL如何工作的更多信息。
    Istio中的相互TLS

    kubernetes - Istio |不使用Istio入口网关的TLS双向身份验证-LMLPHP
    NGINX

    我发现github上存在类似的问题,值得尝试。
    @stono提供的Answer

    关于kubernetes - Istio |不使用Istio入口网关的TLS双向身份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64207038/

    10-15 14:43