Your cart is currently empty!
Kubernetes: Traefik IngressRoute
IngressRoute is Traefik CustomResourceDefinition (CRD). It is used to manage access external access to the services. Same function as Ingress, just different implementations.
Middleware is also Traefik CustomResourceDefinition (CRD). It is used to “tweak” your request and/or response.
Using Ingress, we apply the Middleware by adding it as an annotations.
Using IngressRoute, we define the Middleware as part of the spec.
First we need to create the Middleware:
Note: Only one Middleware per resource!
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: example
namespace: default
spec:
stripPrefix:
prefixes:
- "/nginx"Then we apply it to Ingress:
The value format for the middleware annotation is <middleware-namespace>-<middleware-name>@kubernetescrd.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: foo
annotations:
traefik.ingress.kubernetes.io/router.middlewares: default-example@kubernetescrd, default-example2@kubernetescrdNow instead of creating Ingress, we also can achieve it with IngressRoute:
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: foo
spec:
entryPoints:
- web
routes:
- kind: Rule
..
middleware:
- name: example
namespace: default
- name: ...
...References:
- https://doc.traefik.io/traefik/routing/providers/kubernetes-crd/
- https://doc.traefik.io/traefik/routing/providers/kubernetes-ingress/#on-ingress
- https://doc.traefik.io/traefik/routing/routers/#rule
- https://doc.traefik.io/traefik/middlewares/http/overview/#available-http-middlewares
- https://doc.traefik.io/traefik/providers/overview/#supported-providers
