Trying to understand how to create ingress for AJP connection to Tomcat

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.

AJP (Apache Jserv Protocol) is basically a binary protocol that allows to reverse proxying requests from a FE Web Server to a BE Application Server

Source: Stackoverflow

So you need to configure Traefik in between with a TCP router and service.

You can find some info on TCP at the bottom of the kubernetes-crd page.