Kubernetes入口和IngressRoute有什么区别?

时间:2020-02-11 21:16:31

标签: kubernetes traefik-ingress

我仍在学习kubernetes,偶然发现了对象“ Ingress”和“ IngressRoute”。这两个对象有什么区别? IngressRoute取代了旧的Ingress吗?我正在使用Traefik 2.1运行Kubernetes集群V1.17。我的IngressRoute可以正常工作,但我也发现了博客,解释了如何定义一个入口。

2 个答案:

答案 0 :(得分:16)

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

Contour处理得很好,并且允许两个系统共存,Traefik团队无视我们的警告,而基本上将Ingress转换为原始配置,只是因为他们看不到支持它的好处。你能告诉我这个事吗?因为我绝对是。

Ingress基本上是官方的事情,但这还不完善,有些人正在尝试制作新的更好的东西,但进展并不顺利。

答案 1 :(得分:7)

ingressRoute特定于Traefik。它不是Kubernetes的本机。这是一个自定义资源定义,可让您利用Kubernetes ingress资源中未公开的Traefik功能

Traefik docs解释了其背后的原因。

...社区表示有必要利用Traefik功能而无需借助(大量)注释,我们最终为IngressRoute类型编写了自定义资源定义(以下简称CRD)...