ingressroute 如何连接到 traefik ingress controller

how ingressroute is hooked up to traefik's ingress contoller

我正在学习 traefikingressroute。最让我困惑的一件事是这两个部分是如何连接在一起的。

部署 traefik 和我自己的服务后,我可以简单地创建以下 ingressroute 使其工作:

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: my-service-ir
  namespace: my-service-ns
spec:
  entryPoints:
    - web
  routes:
  - match: Path(`/`)
    kind: Rule
    services:
    - name: my-service
      port: 8000

但是 ingressroutetraefik 没有任何共享:不在同一个命名空间中,没有选择器等。在我看来 ingressroute 可以神奇地找到 traefik 并在 traefik 上申请。很好奇背后发生了什么

谢谢

当你在 kubernetes 集群中部署 traefik 时,你使用像 here 这样的 rbac-k8s 清单。如果你使用 helm 那么这些都存在于那个引擎盖下。

这些 RBAC 实际上创建了新的资源类型,即 IngressRoute 在这里。 正如您在 link ClusterRole 中看到的那样,它们在集群级别应用。这赋予他们 ClusterLevel 特权。这就是您在命名空间中看不到任何特殊内容的原因。

您可以在此处查看 sample task,这将使您对此事有更多了解。