New to Kubernetes. Need your help in getting more clarity on services topic. Let . . .

Gurudutt Dongre:
New to Kubernetes. Need your help in getting more clarity on services topic. Let me know if my understanding is correct or not.

NodePort and Loadbalancer type - Is used when you have an external application that needs to talk to the pods within the cluster. This type is chosen when there is an external application involved because it provides us an IP address/Loadbalancer endpoint that is accessible from outside the cluster.

ClusterIP - Is used ONLY for different tiers of applications pods within the cluster to talk to each other. This cannot be used instead of NodePort or Loadbalancer because it does not expose an endpoint that is accessible outside the cluster ? I believe service IP and service name cannot be reached from outside the cluster ?

Thanks in advance.

Madhan Kumar:
https://www.youtube.com/watch?v=T4Z7visMM4E&t=814s