Traefik Ingress Controller

Unlike grumpy ol' man Nginx , Traefik, a microservice-friendly reverse proxy, is relatively fresh in the "cloud-native" space, having been "born" in the same year that Kubernetes was launched.


This is a companion discussion topic for the original entry at https://geek-cookbook.funkypenguin.co.nz/kubernetes/ingress/traefik/

Hello. I am very much enjoying the tutorials. I feel like I’ve missed a step in creating a DNS entry for a local domain which can then be used by traefik to route to podinfo. Do I need a CRD to setup the entry? Right now I get no address for the ingress:

thaynes@kubevip:~/workspace$ kubectl get ingress -A
NAMESPACE   NAME      CLASS     HOSTS                       ADDRESS   PORTS   AGE
podinfo     podinfo   traefik   podinfo.haynesnetwork.com             80      46s

This does not resolve, nor is a DNS entry added automatically when I configure external-dns for service and ingress on top of crd.

   sources:
      - crd
      - service
      - ingress

After some modifications to my traefik values I was able to get its address assigned to the ingress and I could connect from my domain (tested with both podinfo and a second I set up for the dashboard):

thaynes@kubevip:~/workspace$ kubectl get ingress -A
NAMESPACE   NAME                CLASS     HOSTS                       ADDRESS        PORTS   AGE
podinfo     podinfo             traefik   podinfo.haynesnetwork.com   192.168.0.37   80      11h
traefik     traefik-dashboard   <none>    traefik.haynesnetwork.com   192.168.0.37   80      10h

I added the DNS entries manually in cloudflare, external-dns seems to be in a bad spot with the bitnami chart where the new chart doesn’t work see here but there is a bug in the older version who’s chart works that cause it to crash if there are records with the same setting, which there always are after the first time it adds the record. Hopefully a new build is cut so the latest chart can work.

I am using http for now, I’m not sure why I do not have a 443 port in my Ingress though as the examples I’ve seen, including here, show that. Next thing I plan to do is get https working.