There are other Service types we could have used to establish communication:
ClusterIP
ClusterIP (the default type) exposes the port only inside the cluster. Such a port would not be accessible from anywhere outside. ClusterIP is useful when we want to enable communication between Pods and still prevent any external access.
If NodePort is used, ClusterIP will be created automatically.
LoadBalancer
The LoadBalancer type is only useful when combined with cloud provider’s load balancer.
ExternalName
ExternalName maps a service to an external address (e.g., kubernetes.io).
In this chapter, we’ll focus on NodePortand ClusterIP types. LoadBalancer will have to wait until we move our cluster to one of the cloud providers and ExternalName has a very limited usage.