Can Kubernetes pods that use host networking access Service resources by the service name and service port?

2.8k Views Asked by At

Can Kubernetes pod that uses the host network send requests directly to a Service resource by using the service name and service port (incl. utilization of CoreDNS)? Or do I have to expose the service via nodePort on the host network?

1

There are 1 best solutions below

0
On BEST ANSWER

If you want a pod to send requests directly to service resource you have to change pod's dnsPolicy to ClusterFirstWithHostNet. It should be used explicitly for pods running with hostNetwork: true. This way it will use cluster DNS and will be in host network.

You can check it in /etc/resolv.conf file. When you are using dnsPolicy: ClusterFirst this file is inherited by pod and uses host's DNS resolver. When you set dnsPolicy: ClusterFirstWithHostNet it will change DNS resolver to cluster's DNS.