I'm working with a self-hosted Kubernetes cluster and Traefik. I'm primarily using Traefik as a proxy to allow IPv6 external addresses to connect to the services hosted in the cluster. Since the cluster I'm running doesn't support IPv6, the Traefik instance has to be run in a VM separate from the Kubernetes cluster. In this case, it is in the same OpenNebula cluster. I'm using metallb (https://metallb.universe.tf/) to expose (192.168.197.0/24) to the "outside". When using the "file" provider, I can point to the address exposed by metallb and everything works flawlessly. It would be nice not to have to maintain a separate directory of files to maintain the Traefik proxy. I've used kubectl proxy to connect Traefik to the Kubernetes cluster. It picks up the services and ingresses just fine. However, my problem comes with services running load balancers. If you look at test-service in the screenshot:
It shows the external address as 192.168.197.1 and the cluster-ip as 10.101.128.104.
If you look at the Traefik display for the service:
It shows the backend as 10.244.2.128 which is the podIP. Since Traefik, in this case, is not running as a pod in Kubernetes, this address is inaccessible. Which leaves this HTTP service useless.
I've dug through the documentation the best I can and can't find a solution that appears to work, other than just doing everything through the file provider. If somebody has a pointer to documentation that I've overlooked, missed, or not understood and is willing to point me at it, that would be wonderful.
Otherwise, I would like to propose a feature enhancement that allows for some sort annotation or something that would allow a Traefik HTTP service to point at a loadbalancer exposed destination.
Thanks,
Chris