如何将 GKE Ingress 与 Nginx Ingress 结合使用?

2024-01-11

GKE 入口:https://cloud.google.com/kubernetes-engine/docs/concepts/ingress https://cloud.google.com/kubernetes-engine/docs/concepts/ingress

Nginx 入口:https://kubernetes.github.io/ingress-nginx/ https://kubernetes.github.io/ingress-nginx/

为什么选择 GKE Ingress

GKE Ingress 可与 Google 托管的 SSL 证书一起使用。这些证书部署在负载均衡器的边缘服务器中,从而导致非常低的 TTFB(第一个字节的时间)

GKE Ingress 有什么问题

HTTP/域路由是在负载均衡器中使用“转发规则”完成的,这是非常昂贵的。每条规则的成本约为 7.2 美元。每个域需要一条规则。

为什么选择 Nginx Ingress

Nginx Ingress 还创建 (TCP/UP) 负载均衡器,我们可以在其中使用入口控制器指定 HTTP/域的路由。由于路由是在集群内部完成的,因此将域添加到规则中不会产生额外成本

Nginx Ingress 出了什么问题

要启用 SSL,我们可以使用 cert-manager。但正如我上面提到的,Google 的托管证书将证书部署在边缘服务器中,这导致延迟非常低

我的问题

两者可以一起使用吗?这样 HTTPS 请求首先到达 GKE 入口,GKE 入口将终止 SSL 并将流量路由到 Nginx 入口,Nginx 入口将其路由到相应的 pod


无法指出Ingress到另一个Ingress。此外,在您的具体情况下,也不可能指出GCE ingress class自从它依赖于 HTTP(S) 负载均衡器 https://cloud.google.com/kubernetes-engine/docs/how-to/load-balance-ingress,只能有 GCE 实例/实例组 https://cloud.google.com/compute/docs/instance-groups/(基本上是 GKE 中的节点池),或者GCS 铲斗 https://cloud.google.com/storage/docs/json_api/v1/buckets as backends https://cloud.google.com/load-balancing/docs/backend-service.

如果您要使用 GKE 部署 Nginx 入口,它将启动一个网络负载均衡器 https://cloud.google.com/load-balancing/docs/network/这不是 HTTP(S) 负载均衡器的有效后端。

所以两者都不可能通过Ingress也不是 GCP 基础设施功能。但是,如果您需要GCE ingress class要首先受到打击,然后使用 Nginx 管理进一步的路由,您可能需要考虑将 Nginx 作为 KubernetesService https://kubernetes.io/docs/concepts/services-networking/service//部署 https://kubernetes.io/docs/concepts/workloads/controllers/deployment/管理集群网络内的传入流量。

您可以创建一个集群IP https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#creating-a-service用于内部访问 Nginx 部署并从那里使用 cluster-local 的服务主机名 https://kubernetes.io/docs/concepts/services-networking/service/#dns重定向到集群内的其他服务/应用程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 GKE Ingress 与 Nginx Ingress 结合使用? 的相关文章

随机推荐

  • Python:使用win32com将对象插入到Excel的特定行和列中

    我使用 Python 3 5 和 win32com 通过以下方法将对象 pdf 文件 插入到 Excel 中 Embedded object Add ClassType None Filename file loction Link Fal
  • 类连续数据

    我有一个 C 类 它有四个私有浮点数和一堆对此数据进行操作的非静态公共函数 是否可以保证或可以做到这四个浮点数是连续的并且没有填充 这将使该类的大小为四个浮点数 并且它的地址将是第一个浮点数的地址 这取决于你的编译器 您可以使用 pragm
  • Mongoose 是否支持 Mongodb `findAndModify` 方法?

    我想使用 Mongoose 使用 findAndModify 以原子方式增加字段 但是 下面的代码会抛出错误 TypeError Object has no method findAndModify defining schema for
  • 如何在 Suse 上从命令行安装软件包 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 suse版本是什么apt get or yum 如何从命令行安装软件包 一次相当激烈的谷歌搜索表明 这可能是yast or yast2 但没有理智HO
  • 如何将候选用户列表传递给 alfresco 中的 activiti 工作流任务?

    我希望能够传递作为任务候选者的用户列表 用户是从数据列表中检索的 不能作为一个组使用 Activiti candidateUsers 似乎是正确的方法 假设已获取用户并将其设置在变量 ipw reviwers 中
  • JBoss AS7 *.dodeploy 文件

    我们将应用程序打包为 war 文件 宣传对 JBoss AS5 的支持 并指示客户将 war 复制到他们的 JBoss 部署 目录中 并启动他们的应用程序服务器以部署 war 我们正在引入对 JBoss AS7 的支持 因此我们对 AS7
  • 无法正确编写签名助手应用程序代码

    我正在尝试对我的帮助应用程序进行代码签名 我已经为其创建了一个单独的配置文件 它是有效且有效的 我可以将其存档并导出以供 Mac App Store 提交 但是 当我运行主应用程序并将帮助程序添加为守护程序时 帮助程序应用程序开始运行 但它
  • GitHub 默认 README 标记

    这是一个与 GitHub 功能相关的非常简单的问题 该功能可以获取 README 文件并将其显示在任何存储库上 我知道它使用这个存储库可以做到这一点 https github com github markup 但想知道是否在没有任何扩展的
  • 垃圾收集器如何识别根

    标记 清除垃圾收集器的第一阶段是标记 查找 堆上的所有活动对象 为此 必须有一个起点或根 所有标记都从那里开始 GC如何识别这样的根 假设一组不同的对象是可访问的 这些对象被称为根 通常 这些对象包括从调用堆栈中任何位置引用的所有对象 即当
  • 通过 VPN 连接的 iPhone 远程调试

    当我的 iPhone 使用本地 WiFi 时 Xcode 会通过网络看到我的 iPhone 我的 Mac Pro 开发计算机正在运行带有 VPN 服务器的 macOS Server 当我从 iPhone 通过 VPN 连接到 Mac Pro
  • Qt:在构造函数内部连接 ​​- 在初始化对象之前会调用槽吗?

    我正在学习 Qt 框架 C 想知道 QT 是否有任何机制来保护插槽在对象完全初始化之前不被调用 考虑 A 类构造函数 A A mTreeView new QTreeView connect mTreeView QTreeView custo
  • 删除html表格中的外边框

    我正在开发 HTML 格式的报告 我那里有一张桌子 在每个 TD 中我都有另一个表 我想将 td 中的每个表分开 所以我启用了主表的边框 但内部表格很少需要显示单元格边框 但我不希望显示该特定内部表格的外边框 Ex table tr td
  • 是否可以使 VSO(Visual Studio Online)存储库公开可见?

    我喜欢 VSO Visual Studio Online 功能及其能力 但我希望其他用户 匿名 能够查看我的某个项目的存储库 我试图在项目设置中使用安全性内容 但无法弄清楚如何设置对我的存储库的公共访问 有可能吗 目前 没有 VSTS 目前
  • 当应用程序处于后台且具有数据负载时,如何处理 Android FCM 消息? [复制]

    这个问题在这里已经有答案了 当应用程序处于后台时 使用 FCM 的 Android 推送通知无法处理 默认消息显示在通知托盘中 任何人都可以帮助我如何在后台应用程序时处理消息 Override public void onMessageRe
  • 在 Swift 中,如何扩展类型别名?

    我有一个类型别名 typealias BeaconId String NSObject 我想通过做类似的事情来扩展它 extension BeaconId 但这会引发编译错误 必须在非专用泛型类型 Dictionary 上声明约束扩展 并使
  • RangeError(索引):无效值:唯一有效值为0:1

    我是颤振的新手 我正在尝试将数据列表添加到视图中 数据列表具有不同长度的不同订单项集合 我正在从 API 获取数据 但由于订单数据的长度不同 我收到如下图所示的错误 我的 json api 如下 status success message
  • 检测 AppWidget 上的 OnTouch。如果可以的话?

    检测 AppWidget 上的 OnTouch 如果可以的话 你好 我正在尝试为 Android 2 1 创建我的第一个 AppWidget 其中客户端可能有机会在我的自定义视图上选择一个项目 我将为其创建一个自定义视图和一个滑块 客户可以
  • 从 Flowable Room ORM 发出每个项目

    我在 Room ORM 中有一个项目列表 我想在 Recycler 视图中显示它 数据正在从网络添加到数据库 问题是我每次都会得到从 Flowable 发出的整个列表 而不是每个项目 我尝试过 distinctUntilChanged 没有
  • 从表生成sql脚本

    替代文本 http www freeimagehosting net uploads 64fac9c8c4 gif http www freeimagehosting net uploads 64fac9c8c4 gif 是否可以为所有表生
  • 如何将 GKE Ingress 与 Nginx Ingress 结合使用?

    GKE 入口 https cloud google com kubernetes engine docs concepts ingress https cloud google com kubernetes engine docs conc