I am trying to figure out a means to have a private communication between a pod in k8 cluster and an external droplet in the same data centre from same account.

I know i can expose a loadbalancer/nodeport service from the pod and get access but i want a private networking between these and totally avoid public access.

Any insights are appreciated.


These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

1 answer

Hi there!

Unfortunately, DOKS NodePort services only bind to the nodes public interface at this time. One option to control access is to use and ingress controller such as nginx(https://github.com/kubernetes/ingress-nginx) , and then configure ingress rules using ingress objects(https://kubernetes.io/docs/concepts/services-networking/ingress/).

By using this you can setup a whitelist on the ingress controller and whitelist your external droplet’s IP: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#whitelist-source-range

This would allow you to expose that service publicly but only allow one IP to actually contact your service.


John Kwiatkoski
Senior Developer Support Engineer

Submit an Answer