That’s not how DNS works. If you publicly query tfk.example.com it’ll reply with a records associated to that entry and that’s it. The client then attempts to connect to those IP addresses and no further DNS queries are made (assuming there’s no CNAME records). If you want to use DNS for that then you’ll need to add entries directly to tfk.example.com which point to your internal addresses.
So, you need to change tfk.example.com records whenever IP addresses change, most likely via some kind of API to automate things, assuming you don’t directly control name servers for tfk.example.com by yourself.
But, as you’re running a proxy anyways it doesn’t reveal internal addresses and the client needs only public addresses to connect into. I haven’t heard about traefik before, so I don’t have a clue on how it works, but ‘traditional’ proxies effectively hide everything on the ‘LAN’ side. (Yes, I know, it’s not necessarily/strictly speaking LAN).