Services logically group pods to allow for direct access on a specific port via an IP address or DNS name.
ServiceTypes allow you to specify what kind of Service you want.
You can distribute traffic using a load balancer.
More complex routing of application traffic can also be achieved with ingress controllers.
ClusterIP creates an internal IP address for use within the AKS cluster. This Service is good for internal-only applications that support other workloads within the cluster.
Nodes receive an IP address from the Azure virtual network subnet.
Pods receive an IP address from a logically different address space than the nodes' Azure virtual network subnet.
Network address translation (NAT) is then configured so that the pods can reach resources on the Azure virtual network.
The source IP address of the traffic is translated to the node's primary IP address.
You can let the Azure platform create and configure the virtual networks for you, or choose to deploy your AKS cluster into an existing virtual network subnet.
With Azure CNI, every pod gets an IP address from the subnet and can be accessed directly
The LoadBalancer only works at layer 4. At layer 4, the Service is unaware of the actual applications, and can't make any more routing considerations.
Ingress controllers work at layer 7 and can use more intelligent rules to distribute application traffic.