I have a docker image of my node.js application and I was wondering if I could use it with kubernetes and expose it publically without having to use a load balancer (I will have one container running only)?

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!

Yes you could do this by creating a simple nodeport service. Then you should be able to access your application at:

<ip of node>:<nodeport assigned>

Downsides of this are:

  • The default nodeport range is 30000-32767. If you do not specificaly define a port in that range one will be randomly selected. The downside is that these are not very user friendly or memorable.

  • Node’s IP addresses are not stable. Nodes often get recycled by users or DO for maintenance, upgrades, or patching. During a recycle your nodes are replaced with new nodes and new IP’s are assigned. Though your port will remain the same, the IP of the new node will be different than previous. You would need some sort of mechanism to dynamically keep track of the current node IPs.

Regards,

John Kwiatkoski
Senior Developer Support Engineer - Kubernetes

Submit an Answer