I am gradually migrating my home lab setup from Docker to k3s and am having trouble understanding the proper way to expose non-http/s services and whether Traefik is a part of that. The situation is I have an Apache web server which is not running in a container currently connecting via the AJP protocol to a Tomcat running in a Docker container. For this step I'm trying to move the Tomcat from Docker to k3s.
I've been able to get Tomcat running in k3s with port 8080 exposed via Traefik. I'm still confused about how to expose the AJP (port 8009) protocol to the Apache httpd which runs outside the k3s cluster. I'd like that any tcp connection on port 8009 to a given hostname(tomcat.k3s.mydomain.com) be routed to the Tomcat service/pod. I see mention of tcp routing in Traefik which sounds good, but then I also see something about using a NodePort for this which sounds like Traefik isn't used at all.
Can someone point me in the right direction? Examples would be great but an overview and a pointer to the right docs would be very helpful.