gpt4 book ai didi

nginx - 如何在集群边缘和客户端证书身份验证中使用 SSL 终止公开 GKE TCP 服务

转载 作者:行者123 更新时间:2023-12-02 12:25:03 25 4
gpt4 key购买 nike

我正在寻找一种向外界公开多个 GKE TCP 服务的通用方法。我想要在集群边缘终止的 SSL。如果可能的话,我也更喜欢基于客户端证书的身份验证。
我当前的用例是从私有(private)数据中心(并且只能从那里)访问部署在 GKE 中的 PostgreSQL 服务。但基本上我对适用于任何基于 TCP 的服务的解决方案感兴趣,而无需内置 SSL 和身份验证。
一种选择是将 nginx 部署为 TCP 服务的反向代理,使用 LoadBalancer 类型的服务(L4,网络负载平衡器)公开 nginx,并使用 SSL 和客户端证书验证配置 nginx。
有没有更好、更 GKE 原生的方式来实现它?

最佳答案

据我所知,没有 GKE-native 方法可以完全满足您的需求 .
如果这只是处理基于 HTTP 的流量,您可以简单地使用 GKE Ingress for HTTP(S) Load Balancing但考虑到:

But basically I'm interested in a solution that works for any TCPbased service without builtin SSL and auth.


这不是您的用例。
所以你可以 保留您已经设置的内容因为它似乎运作良好或作为替代方案,您可以使用:
  • nginx ingress , 这与 GKE ingress 不同能够暴露于外部世界不仅是基于 HTTP/HTTPS 的流量 , 还有 可以代理 TCP 连接 来到任意端口。
  • ✅ 你可以使用 TLS 终止代理 作为 边车 (类似于 this onethis one )在 External TCP/UDP Network Load Balancer 后面.因为它是不是代理但是一个 直通LB ,它不能提供 SSL 终止,只能将加密的 TCP 流量传递到后端 Pod需要由上述处理的地方边车 .
  • ❌ 来自 this table 中介绍的 GCP 原生负载平衡解决方案仅限 SSL Proxy 乍一看似乎很有用它可以通过 SSL 卸载来处理 TCP 流量 ,但是❗ 它仅支持有限的一组知名 TCP 端口 据我了解,您需要能够 暴露任意 TCP 端口 所以这对你没有多大帮助:

  • SSL Proxy Load Balancing support for the following ports: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 3389, 5222, 5432,5671, 5672, 5900, 5901, 6379, 8085, 8099, 9092, 9200, and 9300. Whenyou use Google- managed SSL certificates with SSL Proxy LoadBalancing, the frontend port for traffic must be 443 to enable theGoogle-managed SSL certificates to be provisioned and renewed.

    关于nginx - 如何在集群边缘和客户端证书身份验证中使用 SSL 终止公开 GKE TCP 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64307413/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com