Cover image for #043 Kubernetes - Services 3

#043 Kubernetes - Services 3

elkhatibomar profile image Omar ・2 min read


this is part 43 from the journey it's a long journey(360 day) so go please check previous parts , and if you need to walk in the journey with me please make sure to follow because I may post more than once in 1 Day but surely I will post daily at least one 😍.

And I will cover lot of tools as we move on.


let's start with the theory first ,

ClusterIP vs NodePort

The clusterIP service let us to communicate inside the cluster itself , but let's say we need the user to interact with the app , so he need a service to do this , it's can be assigned to any pod inside the cluster , it's valid using the NodePort service which let our cluster communicate with the outside of cluster.
In the picture we can see that the user can't interact with the cluster directly.

how NodePort work

We need to know that every node it self have an port ranging between 30000-32767 , also container had port called target port , and lastly our service had a port.

apiVersion: v1
kind: Service
  name: api-service
  type: Nodeport
    - targetPort: 10253
      port: 8081
      nodePort: 30005
      app: myapp
      type: rest-api

we can see in the specs the ports we describe them like this , myapp is the name of the pod.

if i need to access the pod in browser I use the link in this form NodeIP:port , NodeIp in the image is and port is 30005 , so the link will look like this and now I can access the node from outside of cluster.
in real life the port is 80 , those settings can be done when we buy the host , we can use a proxy to change port from 30005 to 80 , and domain name to access it using a name not ip.

A good question here if I have a 10 replicas , every one is in a node every node have an IP , What is the solution?
We can do a lot of things here like load balancing and Ingress , Ingress is very good for big applications.

Posted on by:

elkhatibomar profile



Computer Scientist , Full stuck software engineer , Linux user since childhood , Classical computer Science books lover , DevOps in progress...


markdown guide