Thank you for your response. If you want to expose your DNS service you have 2 options. You can use NodePort -like in this post- or use external UDP LB. -which I mentioned in another post- If you use NodePort, kubernetes NodePorts cannot have default port values like 80,443 or 53. NodePort range can vary and it will probably take values between 30000 and 32767. So your DNS service can not be a "default" DNS service. You must make your DNS queries to some different port like 30053. (Because of the NodePort limitations.)
If you want to expose your server like a regular DNS service, you can use UDP LB. In this case, you are not interested in any of the NodePort, you make your DNS queries to your UDP LB, and it will reroute the traffic to your DNS server's NodePort.
If you are interested in this case, you can read my another post here https://medium.com/turknettech/serving-dnsmasq-as-a-cache-dns-service-in-kubernetes-with-udp-loadbalancer-14fcfa8eaf3b