Kubernetes Ingress 和 IngressRoute 有什么区别?

Ral*_*lph 13 kubernetes traefik-ingress

我仍在学习 kubernetes,并且偶然发现了对象“Ingress”和“IngressRoute”。这两个对象有什么不同?IngressRoute 是否取代了“旧”的 Ingress?我正在使用 Traefik 2.1 运行 Kubernetes Cluster V1.17。我的 IngressRoute 工作正常,但我也找到了解释如何定义入口的博客。

cod*_*ger 25

Ingress 是一种共享抽象,可以由许多提供程序(Nginx、ALB、Traefik、HAProxy 等)实现。它特别是对相当简单的 HTTP 反向代理的抽象,可以根据主机名和路径前缀进行路由。因为它必须是一个共享的东西,这意味着处理提供者特定设置的配置很尴尬。提供方的一些团队已经认为共享抽象的好处不值得实现的复杂性,并做了自己的事情,到目前为止 Contour 和 Traefik 都将它们命名为 IngressRoute,但除了类似的命名之外没有其他联系。

Contour 处理得相当好并允许两个系统共存,Traefik 团队无视我们的警告,基本上将 Ingress 削弱到普通配置,只是因为他们认为支持它没有任何好处。你能说我对此很咸吗?因为我绝对是。

基本上 Ingress 是官方的东西,但它并不完美,有些人试图做出一个新的、更好的东西,但进展并不顺利。

  • 另外一个奖励点是 OpenShift 中的路由器系统,它激发了 Ingress 标准,但由于 OpenShift 具有长期的向后兼容承诺,因此它仍然存在。 (2认同)
  • 是的,这很尴尬。我花了几周的时间才弄清楚如何在裸机集群上设置 traefik。所以现在我选择了 Traefik IngresRoute,它最终对我有用。 (2认同)
  • 使用 traefik 2.2。不再需要使用 IngressRoute,并且可以使用 kubernetes 的核心 Ingress 定义来配置反向代理。另请参阅[此处](https://github.com/imixs/imixs-cloud/blob/master/doc/INGRESS.md) (2认同)

swi*_*.op 9

AningressRoute特定于 Traefik。它不是 Kubernetes 原生的。它是一个自定义资源定义,允许您利用未在 Kubernetesingress资源中公开的 Traefik 功能

Traefik文档解释了这背后的原因。

...社区表示需要在不求助于(大量)注释的情况下从 Traefik 功能中受益,我们最终为 IngressRoute 类型编写了自定义资源定义(以下为 CRD 的别名)...